MySQLのパスワード変更

MySQLのユーザパスワードを変更する場合はログイン後に次のコマンドでOK。

mysql> set password for hoge=PASSWORD('hogespassword');

rootのパスワードを変更しようとすると。。。

mysql> set password for root=PASSWORD('rootpassword');
ERROR 1133 (42000): Can't find any matching row in the user table

あれ?エラーが出てるんで、mysql.userを確認

mysql> select user,host,password from mysql.user;
+----------+------------+
| user     | host       |
+----------+------------+
| hoge     | %          |
| root     | 127.0.0.1  |
| root     | localhost  |
| root     | production |
+----------+------------+

どうやらrootユーザにはhostが'%'のレコードがないためにエラーが出てたみたいなので、hostを指定しても一度実行。

mysql> set PASSWORD for root@localhost=PASSWORD('rootpassword');
Query OK, 0 rows affected (0.00 sec)