MySQL のパスワードを変更する方法

背景

プロジェクトで MySQL w/rails を使う事になったが, development のパスワードが config/database.yml に固定で記載されていたため, localの mysql のパスワードを変更する必要があった.

 

手順

mysql に入ります.

mysql -u root -p

 

user:Password を新しいパスワードに更新します.

root@localhost[(none)]:3> use mysql;

root@localhost[mysql]:3> select * from user where Host='localhost' and User = 'root';

root@localhost[mysql]:2> update user set Password=password('新しいパスワード') where Host='localhost' and User = 'root';

root@localhost[mysql]:3> select * from user where Host='localhost' and User = 'root';

root@localhost[mysql]:4> flush privileges;

INSERT, UPDATE, DELETE などで権限テーブルを変更した場合, サーバを再起動するかテーブルのリロードを行うまでは権限チェックは施行されません. これを更新するために FLUSH PRIVILEGES を発行しています.

 

ちなみに MySQL のパスワードを ~/.my.cnf に下記の要領で記載することで, 接続時の入力が不要になります.

$ tail -n2 $HOME/.my.cnf
[client]
password="foobar"

 

 

参考