mysqlパスワードを忘れた場合再度設定する方法

mysqlのパスワードを忘れた場合ってありますよね?

-> % mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

データベースに接続できないよーってなりますよね?

これが仕事だったら頭が真っ白になります。

やばし!!!!

そこで今回はmysqlのパスワードを忘れた場合の対応方法を記述します。

my.cnfに認証を解除するコマンドを記述

vim /usr/local/etc/my.cnf # macの場合
[mysqld]
skip-grant-tables

mysqlを再起動

mysql.server restart

パスワードなしでログイン

mysql -u root -p

パスワードを変更

mysql> UPDATE user SET authentication_string=password('新規パスワード') WHERE user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

再設定したパスワードをMySQLに反映させます

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

mysqlから出る

mysql> quit
Bye

mysqlでパスワードありでログインできるように設定

[mysqld] skip-grant-tables  # 削除

mysqlを再起動

mysql.server resrtart

先ほど設定したパスワードでログインできるようにする

mysql -u root -p

無事にパスワードが設定できてめでたしめでたし!!