2012年10月19日金曜日
MySQLのバックアップ・リストアなど
MySQLでのバックアップ、リストアの調べたのでなんとなくメモ。
(1)DBの状態を確認
use データベース名;
status;
(2)ファイルシステムに配置しているのSQLファイルをを実行
mysqlプロンプト上で、sourceコマンドを利用
mysql > source ファイル名;
ファイル名は絶対パス指定、相対パス指定が使える
(3)バックアップ
mysqldumpコマンドを利用する
a)全バックアップ
$ mysqldump -A -u root -p パスワード --opt > ダンプファイル名
b)特定データベース名を指定してバックアップ
$ mysqldump データベース名 -u root -p パスワード --opt > ダンプファイル名
--optは全部入り
個別に指定することもできる
--add-drop-table dropテーブルを追加
ダンプ時の文字コードを指定する場合は
--default-character-set=文字コード
c)データのみをダンプ
mysqldump -u ユーザ名 -e -c -t -p foo_db > dump.sql
d)指定条件(WHERE句の形式で指定)のデータたけをダンプ
mysqldump -u ユーザ名 --where="条件" -p データベース名 テーブル名 > ファイル名
(4)リストア
バックアップしたファイル名を標準入力から入れる
a)全データリストア
$mysql -u root -p パスワード < ダンプファイル名
b)特定データベースに設定
$mysql -u root -p パスワード データベース名 < ダンプファイル名
(5)select結果をファイルに出力
a) mysql上で
select * into outfile 'ファイル名' from テーブル名;
CSVで出力する場合は fields terminatedでセパレータに,を指定
select * into outfile 'ファイル名' from テーブル名 fields terminated by ',';
b) コマンドライン上で
$ mysql -e "select * from テーブル名" -u ユーザ名 -p データベース名 > ファイル名
(6)ファイルを取り込み
load data infile 'ファイル名' into table テーブル名;
CSVを取り込む場合は fields terminatedでセパレータに,を指定
load data infile 'ファイル名' into table テーブル名 fields terminated by ',';
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿