今日は久しぶりに晴れてちょっと蒸し暑い京都です。。
さて、今日は僕が個人的によく使うMySQL絡みのコマンドを、忘備録も兼ねて書いておこうと思います。
まずはログイン。ローカルサーバの場合はこれだけ。
$ mysql -u [user] -p
で、サーバがローカルではない場合はホスト名を明記してあげる。
$ mysql -h [host_name] -u [user] -p
ログインしたらデータベースの指定。もちろんログイン時にデータベースを指定することもできますが、僕はログイン後にデータベースを指定しています。
mysql> use [database_name];
テーブルの作成はcreate table文ですが、そういうのは割愛します。
弊社では、エクセルで作ったテーブル定義書からcreate table文等を吐き出すツールを作成して使っていますので(これはまた機会があれば紹介します)、ファイルに書かれたsql文を実行するコマンドがこちら。別に拡張子は.sqlじゃなくても構いません。
mysql> source [/path/to/file.sql];
でも実はもっと簡単な方法がありまして、実際よく使っているのはこちら。要は短縮コマンドですね。
mysql> \. [/path/to/file.sql];
あと、テストデータ(特に大量のデータ)を用意するのに、よくcsvファイルなんかを用意すると思いますが、そのデータのインポートコマンドがこちら。
mysql> load data local infile "[path/to/file.csv]" into table [table_name] fields terminated by ',';
もし、囲み文字があるなら、「ENCLOSED BY='"'
」という風に、ENCLOSED BY
の値に囲み文字をセットしてコマンドの最後に付けて下さい。
ちなみにローカルのcsvファイルをよそのサーバのMySQLにインポートするときはこちら。
$ mysqlimport --local --compress --user [user] --password --host [host_name] --fields-terminated-by ',' --fields-enclosed-by '"' --fields-escaped-by '"' [database_name] /path/to/file.csv
ダンプファイルの作成コマンドがこちら。
$ mysql -u [user] -p [database_name] > /path/to/file.sql
もし、文字化けしていたら、「--default-character-set=utf8
」のように、文字コードを指定して下さい。
ちなみに、特定のテーブルをダンプしたい場合は、こちら。
$ mysqldump -u [user] -p [database_name] [table_name] > /path/to/file.sql
最後にダンプファイルからの復元がこちら。
$ mysql -u [user] -p [database_name] < /path/to/file
大体よく使うのはこれくらいかな。また思い出したら書こうと思います。