個人的によく使うMySQLコマンド集
ちょくちょく使うMySQLのコマンド・SQLを備忘録としてメモ。
> show variables like 'char%';
○ユーザとホストの抽出
> SELECT user, host FROM mysql.user;
○ユーザ作成&パスワード設定
> CREATE USER ユーザ名@ホスト名(IPアドレスなど) IDENTIFIED BY 'パスワード';
○特定のデータベースに全ての権限付与
> GRANT ALL ON DB名.* TO ユーザ名@ホスト名(IPアドレスなど) IDENTIFIED BY 'パスワード';
○特定の値があるかの検索(IN)
> WHERE カラム名 IN (値1, 値2, …); ※「NOT IN」は省略
○rootパスワードの設定
> SET PASSWORD FOR root@ホスト名(IPアドレスなど)=PASSWORD('hoge');
○MySQLのバージョン確認
$ mysql -u ecorange_user -p'ecorange_pass' -D mysql -e "SELECT version()"
○AUTO_INCREMENTの値の変更
> show table status like 'テーブル名'\G // テーブルの状態を確認 > ALTER TABLE テーブル名 AUTO_INCREMENT = 指定する値;
○検索結果をファイルに出力
> INTO OUTFILE "/tmp/mysql.csv" FIELDS TERMINATED BY ',' // ←をつける。 又は $ mysql -u root -p -e "SELECT * FROM table_name" db_name > /tmp/mysql.csv // あくまで例
○DB1のT1の特定のカラム名で、DB2のT2の特定のカラムを更新
> UPDATE DB1.T1, DB2.T2 SET DB1.T1.column = DB2.T2.column WHERE DB1.T1.hoge_id = DB2.T2.hoge_id;
○特定のカラムの文字列を置換
> UPDATE table SET column = REPLACE(column, "/string/", "/") WHERE hoge_id=8;
○条件付きでダンプ
$ mysqldump -p -h host -u user_name db_name --where "条件" > 出力ファイル
$ mysqldump -p -h ×××× -u ×××× -d(or --no-data) db_name > 出力ファイル
○全データベースをダンプ
※root
ユーザなど全データベースの権限があるユーザでないと実行できません。
$ mysqldump -p -h host -u user_name --all-databases > 出力ファイル
またなにかあれば、随時更新。