ねこきっくぱんちのメモ帳

ITに関することいろいろめも。たまにアニメ。

MySQL020 ファイルを使ったやり取り(ログ・バックアップ・リストア・ロック)

chap14

sqlファイル実行
sql.txt
use db1; //これを忘れずに!
select * from tb10;
select * from csv;

mysql>
source /path/sql.txt

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