ホームページ  >  記事  >  データベース  >  mysqldump コマンドの使用例の詳細な説明

mysqldump コマンドの使用例の詳細な説明

零下一度
零下一度オリジナル
2017-06-30 15:20:101968ブラウズ

1, さまざまな使用方法

A. 最も単純な使用法:

mysqldump -uroot -pPassword [database name] 
> [dump file]

上記のコマンドは、次のようなダンプ ファイル (ダンプ ファイル) に指定されたデータベースをバックアップします。

mysqldump -uroot -p123 test > test.dump

によって生成test.dump ファイルには、テーブル作成ステートメント (データベース構造の生成) とデータを挿入するための挿入ステートメントが含まれています。

B. --opt

--opt パラメータを追加すると、生成されるダンプ ファイルは少し異なります:

テーブル作成ステートメントには、テーブル名があれば削除が含まれます

。挿入前に含まれるステートメントのロック テーブル tableName write には、挿入後のロック解除テーブルが含まれます


C. クロスホスト バックアップ

次のコマンドを使用して、host1 のsourceDb を host2 の targetDb にコピーします。 host2 ホスト上に作成:

mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb

-C は、データ圧縮を使用するようにホスト間のデータ送信を指示します

D. テーブル構造のみをバックアップします

mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump

はテーブル構造のみをバックアップします。 --databases は、バックアップするホスト上のデータベースを示します。 MySQL ホスト上のすべてのデータベースをバックアップする場合は、次のように --all-databases オプションを使用できます:

mysqldump --all-databases> test.dump

E. バックアップ ファイルからデータベースを復元します

mysql [database name] < [backup file name]

複数のデータベースをバックアップします

構文:

mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

--databases オプションを追加し、その後に複数のデータベースを追加します

mysqldump -u root -p --databases test mysql > D:\backup.sql

すべてのデータベースをバックアップします

戻るための sqldump コマンドすべてのデータベースをバックアップする方法は次のとおりです:

mysqldump -u username -p -all-databases > BackupName.sql

例:

mysqldump -u -root -p -all-databases > D:\all.sql

2, Linux cron コマンドと組み合わせて、スケジュールされたバックアップを実現します

たとえば、すべてのデータベースをバックアップする必要があります。毎朝 1:30 に特定のホストにアクセスし、ダンプ ファイルを gz 形式に圧縮します。その後、次のコード行を /etc/crontab 設定ファイルに追加できます:

30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz

最初の 5 つのパラメータは、分、時間、日を表します。 、月、年をそれぞれ表し、アスタリスクは任意を意味します。 date '+%m-%d-%Y' は、現在の日付を MM-DD-YYYY 形式で取得します。

3. MySQL データベースをバックアップするための完全なシェル スクリプトの例

#vi /backup/backup.sh#!bin/bash
cd /backupecho "You are in backup dir"mv backup* /oldbackupecho "Old dbs are moved to oldbackup folder"File = backup-$Now.sql
mysqldump -u user -p password database-name > $Fileecho "Your database backup successfully completed"

上記のスクリプト ファイルは、backup.sh として保存され、システム内に 2 つのディレクトリ /olcbackup および /backup が作成されます。 Backup.sh が実行されるたびに、/backup ディレクトリ内にある、backup で始まる名前を持つすべてのファイルが /oldbackup ディレクトリに移動されます。

上記のスクリプトの実行計画を次のように作成します:

#crontab -e30 1 * * * /backup.sh

4、mysqldump 完全バックアップ + mysqlbinlog バイナリログ増分バックアップ

mysqldump バックアップ ファイルからデータを復元すると、更新されたデータは失われます。したがって、mysqlbinlog バイナリログ増分バックアップも組み合わせる必要があります。 my.ini または my.cnf に、バイナリ ログまたは mysqld --log-bin を有効にする次の設定が含まれていることを確認してください:

[mysqld]
log-bin=mysql-bin

新しいバイナリ ログ ファイルを生成するには、mysqldump コマンドに --flush-logs オプションが必要です:

mysqldump --single-transaction --flush-logs --master-data=2 > backup.sql

この方法で生成された増分バイナリログファイルは、たとえば mysql-bin.000003 であり、データは次のように復元されます。

shell>mysql -uroot -pPwd <backup_sunday_1_pm.sql><div class="cnblogs_Highlighter sh-gutter"><div> <code class="sql plain">shell>mysql-bin.000003 |
さらに、mysqlbinlog では、データを正確に復元するために --start-date、--stop-date、--start-position、および --stop-position パラメータを指定することもできます。または、途中で問題が発生した期間をスキップしてデータを回復し、次のように MySQL ドキュメントから関連する内容を直接抜粋します。

以上がmysqldump コマンドの使用例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:MySQL ベースのリレーショナル クラウド データが正式に開始次の記事:MySQL ベースのリレーショナル クラウド データが正式に開始

関連記事

続きを見る