個人的によく使うMySQL絡みのコマンド

今日は久しぶりに晴れてちょっと蒸し暑い京都です。。

さて、今日は僕が個人的によく使う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

大体よく使うのはこれくらいかな。また思い出したら書こうと思います。

Recent Posts

Archive