MySQL020 ファイルを使ったやり取り(ログ・バックアップ・リストア・ロック)
chap14
■sqlファイル実行
sql.txt
use db1; //これを忘れずに!
select * from tb10;
select * from csv;
cmd>
$ mysql db1 -u root -proot -e "source /Users/userName/Desktop/sql.txt"
・バッチファイルにバックアップ記載しておくと楽。︎未検証。
outFile.bat
mysql db1 -u root -proot -e
"select * into outfile '/etc/bk/out.csv' fields terminated by ',' from tb10"
■SQL実行結果をファイルに保存(tee)
tee log170826.txt //記録スタート
use db1;
select * from tb10;
select * from tb11;
notee //記録エンド
//ファイル格納場所は/User/UseName直下
//その他は通常のリダイレクト「コマンド > C:¥path¥log.txt」など
■バックアップ・リストア(mysqldump)
・バックアップ
cmd> mysqldump -u root -proot db1 > db1.txt
//ファイル格納場所は/User/UseName直下
//必ずアウトファイルを確認 最後は-- Dump completed on 2017-08-27 1:05:39
//文字コードなどでミスってるとリストアで失敗する。
winの場合下のオプションを付与などで対応。
mysqldump -u root -proot db1 > db1.txt --default-character-set=cp932
・リストア
cmd> mysql -u root -proot create db2 //うまくできない汗
mysql> create database db2;
cmd> mysql -u root -proot db2 < /Users/userName/db1.txt
show databases;
use db2;
show tables;
select * from tb10;
■ロックをかける(lock/unlock)
ロックの種類
・read //selectのみ可
・read local //selectのみ可(InnoDBの場合)
・write //ロックをかけたクライアント以外は全て操作不可。
lock table tb10 read;
unlock tables;
■参考
本:基礎からのMySQL