Mysql/ダンプ・リストア
提供: 初心者エンジニアの簡易メモ
バックアップと復元です。
目次
- 1 バックアップ(db全体)
- 2 バックアップ(table指定)
- 3 バックアップ(table指定&データのみ)
- 4 オンラインバックアップ
- 5 テーブル定義のみバックアップ
- 6 バックアップgzip圧縮
- 7 復元
- 8 復元(db指定)
- 9 強制的に復元
- 10 復元(gzipから)
- 11 復元パス付(非推奨)
- 12 復元パス付(非推奨)パスにカッコなどがある場合
- 13 まとめてリストアバッチ
- 14 schemaもまとめてリストアバッチ
- 15 復元中の処理を見る
- 16 windowsのmysqlからの読み込み
- 17 mysql5.7からのdumpコマンド
- 18 クレジットカード番号検索
- 19 定義書作成
バックアップ(db全体)
mysqldump -uroot -p project1 --default-character-set=utf8 > project1.sql
バックアップ(table指定)
mysqldump -uroot -p project1 table1 table2 --default-character-set=utf8 > project1_table1_2.sql
バックアップ(table指定&データのみ)
mysqldump -uroot -p -t table1 > project1_table1.sql
オンラインバックアップ
書き込みロックがかからなくなる
mysqldump -uroot -p --database project1 --default-character-set=utf8 --single-transaction > project1.sql
テーブル定義のみバックアップ
mysqldump -d -uroot -p database1 table1
バックアップgzip圧縮
mysqldump -uroot -p --database project1 --default-character-set=utf8 | gzip > project1.sql.gz
復元
mysql -uroot -p < project1.sql
復元(db指定)
mysql -uroot -p database1 < project1.sql
強制的に復元
mysql -uroot -p -f < project1.sql
復元(gzipから)
zcat project1.sql.gz | mysql -uroot -p project1
復元パス付(非推奨)
mysql -uroot -ppass1 < project1.sql
復元パス付(非推奨)パスにカッコなどがある場合
mysql -uroot -p'pass1(' < project1.sql
まとめてリストアバッチ
for file in `\find ./schema1 -maxdepth 1 -type f`; do mysql -uroot -ppass1 blog < ${file:2} done
schemaもまとめてリストアバッチ
declare -a schemas=() declare -a schemas=( "schema1" "schema2" ) for e in ${schemas[@]}; do for file in `\find ./${e} -maxdepth 1 -type f`; do mysql -uroot -ppass1 blog < ${file:2} echo ${file:2}; done done
復元中の処理を見る
show processlist; +----+------+-----------+----------------------+---------+------+-----------+------------------------------------------------------------------------------------------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+----------------------+---------+------+-----------+------------------------------------------------------------------------------------------------------+ | 7 | root | localhost | test1 | Query | 0 | query end | INSERT INTO `test` VALUES (1557549,1056447,NULL,NULL,NULL, | | 9 | root | localhost | NULL | Query | 0 | starting | show processlist |
windowsのmysqlからの読み込み
mysql -uroot -p < C:\documents\test.sql
mysql5.7からのdumpコマンド
- コマンド内の"--database"は不要
- 削除すれば、そのまま実行できる
クレジットカード番号検索
grep -E ",'[0-9]{16}'," ./ -r grep -E ",'[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}'," ./ -r grep -E ",[0-9]{16}," ./ -r
定義書作成
mysqldump --no-data --xml -uuser1 -p schema1 > schema1.xml
できたxmlをここに入れる http://mysql-doc.mariyudu.net/