― Web Technology and Life ―

たまに使うと思いだせないmysqlのdumpと特権発行とその他の関数

2011-05-28
ちょっとバックアップしておくか、あるいは、バックアップをDBに戻すか、というときになかなか思い出せないmysqlのdumpコマンドのメモ。 また、同様の理由で特権発行コマンドもメモ。

mysqlのdump

ファイルにdumpする

mysqldump -uuser -ppass db_name > db_name.dump
mysqldump -uuser -ppass db_name | gzip > db_name.dump.gz
#データだけほしいときは、-tオプション
mysqldump -uuser -ppass -t db_name > db_name.dump
#スキーマだけほしいときは、-dオプション
mysqldump -uuser -ppass -d db_name > db_name.dump

dumpファイルをインポートする

mysql -uuser -ppass db_name < db_name.dump
gzip -dc dump.gz | mysql -uuser -ppass db_name

ファイルにCSVに落とす

テキストが入っているようなデータをみるには、CUIのmysql clientでは見づらかったりするので、エクセルとかスプレッドシートでみるためにさくっとCSVで落としたい。

# 書式的な
SELECT * FROM テーブル名 INTO OUTFILE "ファイル名(/)" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '囲み文字の指定';
# サンプル
SELECT * FROM member INTO OUTFILE "/tmp/my.scv" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

YAMLに落とす

マスターデータのdiffを見たかったりってイレギュラー用途ですが。Test::Fixture::DBIってPerlモジュールに付属している、make_fixture_yaml.plってのが使える

make_fixture_yaml.pl -d "dbi:mysql:dbname=hogehoge_db" -t foo_table -u root -o ./foo_table.yaml

mysqlの特権発行

# 最高権限でよしなに
GRANT ALL PRIVILEGES
ON *.* 
TO user@"192.168.1.0/255.255.255.0"  
IDENTIFIED BY 'PASS' 
WITH GRANT OPTION;

# リソース監視用はPROCESS権限で
GRANT PROCESS 
ON *.* 
TO cloudforecast@"監視サーバーIP" 
IDENTIFIED BY 'password' 
WITH GRANT OPTION;

# 死活監視用はUSAGE権限で
GRANT USAGE 
ON *.* 
TO madeye@"監視サーバーIP" 
IDENTIFIED BY 'password' 
WITH GRANT OPTION;

逆引き:その他の関数

unixタイムからdatetimeへ変換する

select from_unixtime(u_birthday) as birthday;

select NOW();#ちなみに現在時刻

datetimeからunixタイムへ変換(生成)する

select UNIX_TIMESTAMP('2014-02-24 20:02:24');
select UNIX_TIMESTAMP();

文字列連結

select concat('http://',domain_name,'/',path);
MySQL update_at : 2014-10-29T12:49:09
hirobanex.netの更新情報の取得
 RSSリーダーで購読する   
blog comments powered by Disqus