Web Developer's Struggle Memories

日々の業務から思ったこと、学んだことを書き連ねていきます。

個人的によく使うMySQLコマンド集

ちょくちょく使うMySQLのコマンド・SQLを備忘録としてメモ。

MySQL文字コードを確認

> 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 > 出力ファイル

 
またなにかあれば、随時更新。