5.7より前(つまり2019年でも)一貫性を保つためにmysqldumpのオプション指定が必要
mysqldump --all-databases --lock-all-tables | 全テーブルロックで一番安全。ダンプ中にアプリケーションから更新処理が走る場合は下の選択肢 |
mysqldump --all-databases --single-transaction | ダンプ中にMyIsamテーブルを更新しない、innoDBスキーマを変更しない |
LOAD DATA LOCAL INFILE 'car_import.csv' INTO TABLE テーブル名 FIELDS TERMINATED BY ',';
LOAD DATA LOCAL INFILE 'persondata.txt' INTO TABLE persondata (col1,col2,...);
LOAD DATA LOCAL INFILE 'test.txt' INTO TABLE test (col1);
標準出力にでるのでリダイレクトで保存すること。以下のコマンドを追加して、圧縮しつつバックアップを取るとよい。
| gzip > dump.sql.gz
単位 | コマンド | 備考 |
テーブル | mysqldump -u root -p --add-drop-table DB名 テーブル名 | drop tableを入れるオプション付き |
テーブル where条件付き | mysqldump -u root -p --add-drop-table DB名 テーブル名 --where 'is_delete = 0' | drop tableを入れるオプション付き |
データベース | mysqldump -u root -p DB名 | dropテーブルは自動で入るようなので、空じゃないDBに入れるときは既存データなくなる! |
mysqldump -u root -p --add-drop-table DB名 テーブル名 > /var/tmp/rooms.sql
mysql -u root -p DB名 < /var/tmp/rooms.sql
mysqldump -u root -p データベース名 > mysql.sql
mysqldump -u root --password=パスワード データベース名 > mysql.sql
mysqldump -u root -p データベース名 | gzip > mysql.sql.gz
mysql> create database mysql2; mysql> exit mysql -u root -p mysql2 < mysql.sql
zcat mysql.sql.gz | mysql -u root -p データベース名
mysqldump -u root -x --all-databases > dump.sql
mysql -u root -p < dump.sql