MySQLサーバのrootユーザーのパスワードを忘れてしまった場合のリセット方法をご紹介します。
1.Mysqlの停止と起動をする
[root@localhost ~]# /etc/rc.d/init.d/mysqld stop mysqld を停止中: [ OK ] [root@localhost ~]# /etc/rc.d/init.d/mysqld startsos mysqld を起動中: [ OK ]
「/etc/rc.d/init.d/mysqld stop」でMySQLを停止し、
「/etc/rc.d/init.d/mysqld startsos」でMySQLをセーフモードで起動します。
startsosは起動時のオプションとして、
「–skip-grant-tables」 ユーザー権限のチェックを無効化
「–skip-networking」 外部からのTCP/IPアクセスを無効化
が付与された状態でMySQLサーバが起動します。
「–skip-grant-tables」 ユーザー権限のチェックを無効化
「–skip-networking」 外部からのTCP/IPアクセスを無効化
が付与された状態でMySQLサーバが起動します。
2.MySQLに接続する
[root@localhost ~]# 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 2 Server version: 5.5.51 MySQL Community Server (GPL) by Remi Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
MySQLユーザーのrootで接続します。「–skip-grant-tables」オプションで起動しているため、パスワードが求められません。
3.MySQLのrootパスワードを設定する
mysql> UPDATE user SET Password=PASSWORD('xxxxxxx') WHERE User='root'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye
「UPDATE user SET Password=PASSWORD(‘xxxxxxx’) WHERE User=’root’;」でrootのパスワードを再設定します。「xxxxxxx」の場所には上書きする新しいパスワードを入力してください。
「FLUSH PRIVILEGES;」で設定を反映させ、「quit」でMySQLの接続を切ります。
4.MySQLを通常モードで再起動します。
[root@localhost ~]# /etc/rc.d/init.d/mysqld restart mysqld を停止中: [ OK ] mysqld を起動中: [ OK ]
MySQLを通常モードで再起動します。
5.新パスワードでログインできるか確認を行う
[root@localhost ~]# mysql -uroot -p Enter password: ←3で設定をしたパスワードを入力 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.5.51 MySQL Community Server (GPL) by Remi Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
「Enter password:」に3の「xxxxxxx」で設定したパスワードを入力しログインできれば成功です。