lighthouse.log

lighthouse.log

MySQL rootパスワードを忘れた時の対応

2018-03-08

MySQL root パスワード忘れた時の対応

1.mysqld 停止

$ service mysqld stop

2.mysqld_safe 実行

認証省略オプション + 安全モードでデモン実行

/usr/bin/mysqldsafe —skip-grant & /usr/bin/mysqldsafe —skip-grant-tables &

$ /usr/bin/mysqld_safe --skip-grant-tables & // highlight-line

[1] 32055
Starting mysqld daemon with databases from /var/lib/mysql

これでパスワード無しで mysql に接続できるようになった!

3.新しいパスワードを設定

mysql コンソールに接続する。

$ /usr/bin/mysql -u root mysql

以下の SQL コマンドを入力し、設定したいパスワードに変更する。

バージョン 5.7 以下

UPDATE mysql.user SET password=PASSWORD('パスワード') WHERE user='root';
FLUSH PRIVILEGES;
quit

バージョン 5.7 以上

UPDATE mysql.user SET authentication_string=PASSWORD('パスワード') WHERE user='root';
FLUSH PRIVILEGES;
quit

実行例

$ /usr/bin/mysql -uroot mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> update user set password=password('P@ssw0rd') where user='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

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

mysql> quit
Bye

4.mysqld 再起動

$ service mysqld restart

STOPPING server from pid file /var/run/mysqld/mysqld.pid
120229 13:08:54  mysqld ended

Stopping MySQL:                                            [  OK  ]
Starting MySQL:                                            [  OK  ]
[1]+  Done                    /usr/bin/mysqld_safe --skip-grant

バックグラウンドで実行中だった認証省略安全モードの mysqld プロセスが停止され、通常モードの  mysqld で再起動された!