いくつかの方法で、データベースのバックアップMySQLデータベースのバックアップ

いくつかの方法MySQLデータベースのバックアップ

 

mysqldumpをバックアップツール

データベース全体をバックアップします

$> mysqldump -u root -h host -p dbname > backdb.sql

データベーステーブルのバックアップ

$> mysqldump -u root -h host -p dbname tbname1, tbname2 > backdb.sql

バックアップ複数のデータベース

$> mysqldump -u root -h host -p --databases dbname1, dbname2 > backdb.sql

すべてのデータベースのバックアップシステム

$> mysqldump -u root -h host -p --all-databases > backdb.sql

直接バックアップ(InnoDBストレージエンジンNA用)データベース全体のディレクトリをコピー

windowns:INSTALLPATH / mysqlの/データ

Linuxの場合:/ var / libに/ mysqlの

次のコマンドを実行する必要性をコピーする前に:

MYSQL> LOCK TABLES;
# 在复制过程中允许客户继续查询表,
MYSQL> FLUSH TABLES; # 将激活的索引页写入硬盘。

mysqlhotcopyバックアップツール

データベーステーブルや最速ルートのバックアップは、唯一のデータベースディレクトリマシン上で実行することができ、およびMyISAMテーブルタイプをのみをバックアップすることができます。

このバックアップ方法を使用するには、テーブルのファイルのバックアップにアクセスできる必要があります。

$> mysqlhotcopy -u root -p dbname /path/to/new_directory;
#将数据库复制到new_directory目录。

mysqlのインポートSQLファイル秩序を回復

$> mysql -u root -p [dbname] < backup.sql
# 执行前需要先创建dbname数据库,如果backup.sql是mysqldump创建的备份文件则执行是不需要dbname。
MYSQL> source backup.sql; # 执行source命令前需要先选择数据库。

データベースディレクトリを復元するためのダイレクトコピー

注意:方法は、元のデータベースと一貫性のあるデータベースのメジャーバージョン番号を削減することにしてください、とだけテーブルのMyISAMエンジンに適用します。

  1. MySQLサービスをシャットダウンします。
  2. MySQLのデータディレクトリをカバーするファイルまたはディレクトリのバックアップ。
  3. mysqlのサービスを開始します。
  4. Linuxシステムでは、ユーザーがファイルがコピーされた後、ユーザーとグループファイルとグループmysqlの実行を変更する必要があります。

mysqlhotcopy高速回復

、MySQLサービスを停止し、データを保存する場所のデータベース(mysqlのデータフォルダ)にバックアップファイルをコピーし、最初の再起動のMySQLサービスは、(データベースファイルの所有者を指定する必要があります)することができます。

$> cp -R /usr/backup/test /usr/local/mysql/data
# 如果恢复的数据库已经存在,则使用DROP语句删除已经存在的数据库之后,恢复才能成功,还需要保证数据库版本兼容。

同じデータベースのバージョン間の移行

$> mysqldump -h www.abc.com -uroot -p password dbname | 
$> mysqldump -h www.bcd.com -uroot -p password
# 将服务器www.abc.com的数据库dbname迁移到服务器www.bcd.com的相同版本数据库上。

MySQLデータベースの異なるバージョン間での移行

元のデータベースをバックアップします。

元のデータベースをアンインストールします。

新しいデータベースをインストールします。

新しいデータベースで、データベースのデータのバックアップを復元します。

データベース・ユーザーは、MySQLデータベースをバックアップするために必要な情報にアクセスします。

デフォルトの文字セットの問題、MySQL4.xは、デフォルトの文字セット、デフォルトの文字セットとしてmysql5.x使用UTF8としてlatin1の使用。デフォルトの文字セットに変更を加えるために必要な中国のデータがある場合。

異なるデータベース間の移行

MySQLとSQL Serverの間での移行を達成するためにMyODBCをツール。

MySQLの移行ツールキットツール。

エクスポートとインポートテーブル

SELECT ...... INTO OUTFILEは、データベース・サーバにエクスポートすることができたテキストファイルを、エクスポートし、まだ存在しないファイルをエクスポートします。

MYSQL> SELECT ...... INTO OUTFILE filename [OPTIONS]
MYSQL> SELECT * FROM test.person INTO OUTFILE "C:\person0.txt"; # 将表person里的数据导入为文本文件person0.txt。

mysqldumpをファイルのエクスポートテキストファイル(とINTO OUTFILEは引用符を追加するために必要なすべてのオプションの方法と同じではありません)

$> mysqldump -T path -u root -p dbname [tables] [OPTIONS]
# -T参数表明导出文本文件。path导出数据的目录。
$> mysqldump -T C:\test person -u root -p #test表中的person表导出到文本文件。执行成功后test目录下会有两个文件,person.sql和person.txt

テキストファイルをエクスポートするmysqlコマンド

MYSQL> mysql -u root -p --execute="SELECT * FROM person;" test > C:\person3.txt;
#test数据库中的person表数据导出到person3.txt文本文件中。--vartical参数可以将一行分为多行显示。 MYSQL> mysql -u root -p --vartical --execute="SELECT * FROM person;" test > C:\person3.txt; # --html将表导出为html文件,--xml文件将表导出为xml文件

LOAD DATA INFILEは、テキストファイルをインポート

MYSQL> LOAD DATA INFILE 'filename.txt' INTO TABLE tablename [OPTIONS] [IGNORE number LINES];
# [IGNORE number LINES]表示忽略行数 MYSQL> LOAD DATA INFILE 'C:\person0.txt' INTO TABLE test.person;

テキストファイルをインポートmysqlimportは

$> mysqlimport -u root -p dbname filename.txt [OPSTONS]
# 导入的表名有文件名决定,导入数据之前表必须存在
$> mysqlimport -uroot -p test C:\backup\person.txt # 将数据导入到test数据库的person表中。

データを回復するmysqlbinlogはを使用します

$> mysqlbinlog [option] filename | mysql -u user -p password
# filename为二进制日志文件,
$> mysqlbinlog --stop-date="2013-03-30 15:27:47" D:\MySQL\log\binlog\binlog.000008 | mysql -u root -p password # 根据日志文件binlog.000008将数据恢复到2013-03-30 15:27:47以前的操作。

バイナリログを開始します

log-bin = path/filename #日志文件存储目录和文件名
expire_log_days = 10    #日志自动删除时间
max_binlog_size = 100M  # 日志文件最大大小

バイナリログを見ます

MYSQL> SHOW VARIABLES LIKE 'log_%';
MYSQL> SHOW BINARY LOGS; $> mysqlbinlog filename # filename为二进制日志文件名。

バイナリログを削除します。

MYSQL> RESET MASTER; #删除所有二进制日志
MYSQL> PURGE {MASTER | BINARY} LOGS TO 'log_name'; #删除文件编号小于log_name编号的文件 MYSQL> PURGE {MASTER | BINARY} LOGS BEFORE 'date'; #删除指定日期以前的文件

一時的にバイナリログ(MySQLサービスを再起動する必要はありません)を停止

MYSQL> SET sql_log_bin = {0|1}  #暂停或启动二进制日志。
 
 

mysqldumpをバックアップツール

データベース全体をバックアップします

$> mysqldump -u root -h host -p dbname > backdb.sql

データベーステーブルのバックアップ

$> mysqldump -u root -h host -p dbname tbname1, tbname2 > backdb.sql

バックアップ複数のデータベース

$> mysqldump -u root -h host -p --databases dbname1, dbname2 > backdb.sql

すべてのデータベースのバックアップシステム

$> mysqldump -u root -h host -p --all-databases > backdb.sql

直接バックアップ(InnoDBストレージエンジンNA用)データベース全体のディレクトリをコピー

windowns:INSTALLPATH / mysqlの/データ

Linuxの場合:/ var / libに/ mysqlの

次のコマンドを実行する必要性をコピーする前に:

MYSQL> LOCK TABLES;
# 在复制过程中允许客户继续查询表,
MYSQL> FLUSH TABLES; # 将激活的索引页写入硬盘。

mysqlhotcopyバックアップツール

データベーステーブルや最速ルートのバックアップは、唯一のデータベースディレクトリマシン上で実行することができ、およびMyISAMテーブルタイプをのみをバックアップすることができます。

このバックアップ方法を使用するには、テーブルのファイルのバックアップにアクセスできる必要があります。

$> mysqlhotcopy -u root -p dbname /path/to/new_directory;
#将数据库复制到new_directory目录。

mysqlのインポートSQLファイル秩序を回復

$> mysql -u root -p [dbname] < backup.sql
# 执行前需要先创建dbname数据库,如果backup.sql是mysqldump创建的备份文件则执行是不需要dbname。
MYSQL> source backup.sql; # 执行source命令前需要先选择数据库。

データベースディレクトリを復元するためのダイレクトコピー

注意:方法は、元のデータベースと一貫性のあるデータベースのメジャーバージョン番号を削減することにしてください、とだけテーブルのMyISAMエンジンに適用します。

  1. MySQLサービスをシャットダウンします。
  2. MySQLのデータディレクトリをカバーするファイルまたはディレクトリのバックアップ。
  3. mysqlのサービスを開始します。
  4. Linuxシステムでは、ユーザーがファイルがコピーされた後、ユーザーとグループファイルとグループmysqlの実行を変更する必要があります。

mysqlhotcopy高速回復

、MySQLサービスを停止し、データを保存する場所のデータベース(mysqlのデータフォルダ)にバックアップファイルをコピーし、最初の再起動のMySQLサービスは、(データベースファイルの所有者を指定する必要があります)することができます。

$> cp -R /usr/backup/test /usr/local/mysql/data
# 如果恢复的数据库已经存在,则使用DROP语句删除已经存在的数据库之后,恢复才能成功,还需要保证数据库版本兼容。

同じデータベースのバージョン間の移行

$> mysqldump -h www.abc.com -uroot -p password dbname | 
$> mysqldump -h www.bcd.com -uroot -p password
# 将服务器www.abc.com的数据库dbname迁移到服务器www.bcd.com的相同版本数据库上。

MySQLデータベースの異なるバージョン間での移行

元のデータベースをバックアップします。

元のデータベースをアンインストールします。

新しいデータベースをインストールします。

新しいデータベースで、データベースのデータのバックアップを復元します。

データベース・ユーザーは、MySQLデータベースをバックアップするために必要な情報にアクセスします。

デフォルトの文字セットの問題、MySQL4.xは、デフォルトの文字セット、デフォルトの文字セットとしてmysql5.x使用UTF8としてlatin1の使用。デフォルトの文字セットに変更を加えるために必要な中国のデータがある場合。

異なるデータベース間の移行

MySQLとSQL Serverの間での移行を達成するためにMyODBCをツール。

MySQLの移行ツールキットツール。

エクスポートとインポートテーブル

SELECT ...... INTO OUTFILEは、データベース・サーバにエクスポートすることができたテキストファイルを、エクスポートし、まだ存在しないファイルをエクスポートします。

MYSQL> SELECT ...... INTO OUTFILE filename [OPTIONS]
MYSQL> SELECT * FROM test.person INTO OUTFILE "C:\person0.txt"; # 将表person里的数据导入为文本文件person0.txt。

mysqldumpをファイルのエクスポートテキストファイル(とINTO OUTFILEは引用符を追加するために必要なすべてのオプションの方法と同じではありません)

$> mysqldump -T path -u root -p dbname [tables] [OPTIONS]
# -T参数表明导出文本文件。path导出数据的目录。
$> mysqldump -T C:\test person -u root -p #test表中的person表导出到文本文件。执行成功后test目录下会有两个文件,person.sql和person.txt

テキストファイルをエクスポートするmysqlコマンド

MYSQL> mysql -u root -p --execute="SELECT * FROM person;" test > C:\person3.txt;
#test数据库中的person表数据导出到person3.txt文本文件中。--vartical参数可以将一行分为多行显示。 MYSQL> mysql -u root -p --vartical --execute="SELECT * FROM person;" test > C:\person3.txt; # --html将表导出为html文件,--xml文件将表导出为xml文件

LOAD DATA INFILEは、テキストファイルをインポート

MYSQL> LOAD DATA INFILE 'filename.txt' INTO TABLE tablename [OPTIONS] [IGNORE number LINES];
# [IGNORE number LINES]表示忽略行数 MYSQL> LOAD DATA INFILE 'C:\person0.txt' INTO TABLE test.person;

テキストファイルをインポートmysqlimportは

$> mysqlimport -u root -p dbname filename.txt [OPSTONS]
# 导入的表名有文件名决定,导入数据之前表必须存在
$> mysqlimport -uroot -p test C:\backup\person.txt # 将数据导入到test数据库的person表中。

データを回復するmysqlbinlogはを使用します

$> mysqlbinlog [option] filename | mysql -u user -p password
# filename为二进制日志文件,
$> mysqlbinlog --stop-date="2013-03-30 15:27:47" D:\MySQL\log\binlog\binlog.000008 | mysql -u root -p password # 根据日志文件binlog.000008将数据恢复到2013-03-30 15:27:47以前的操作。

バイナリログを開始します

log-bin = path/filename #日志文件存储目录和文件名
expire_log_days = 10    #日志自动删除时间
max_binlog_size = 100M  # 日志文件最大大小

バイナリログを見ます

MYSQL> SHOW VARIABLES LIKE 'log_%';
MYSQL> SHOW BINARY LOGS; $> mysqlbinlog filename # filename为二进制日志文件名。

バイナリログを削除します。

MYSQL> RESET MASTER; #删除所有二进制日志
MYSQL> PURGE {MASTER | BINARY} LOGS TO 'log_name'; #删除文件编号小于log_name编号的文件 MYSQL> PURGE {MASTER | BINARY} LOGS BEFORE 'date'; #删除指定日期以前的文件

一時的にバイナリログ(MySQLサービスを再起動する必要はありません)を停止

MYSQL> SET sql_log_bin = {0|1}  #暂停或启动二进制日志。

おすすめ

転載: www.cnblogs.com/byne-mn/p/11301108.html