mysqlのパスワード忘れた

というか、自動セットアップファイルを作って間違って設定したのですが・・・
簡単にメモ。

[user@hoge ~]# service mysqld stop
[user@hoge ~]# /usr/bin/mysqld_safe --user=root --skip-grant-tables &
[user@hoge ~]# mysql -u root

コレで権限を無視して入れるのでサクッと変更します。

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> UPDATE user SET password=password('password') WHERE user='root';
Query OK, 2 rows affected (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

意外と間違えるのがpassword=password('password')で、password='password'
の表記にすると暗号化しないパスワードになりまた入れない事態に陥ります。
またsafemodeのままなので忘れずにmysql自体も再起動します。

[user@hoge ~]# service mysqld stop
[user@hoge ~]# service mysqld start

追記 接続ホストの追加

grant all privileges on *.* to ユーザー名@許可ホスト identified by 'パスワード';

追記 権限の追加

update user set Select_priv='Y', Insert_priv='Y', Update_priv='Y', Delete_priv='Y', Create_priv='Y', Grant_priv='Y', Alter_priv='Y' where User='root';

http://stackoverflow.com/questions/8484722/access-denied-for-user-rootlocalhost-while-attempting-to-grant-privileges