MySQL で、rootのパスワードを忘れた場合・・・

MySQLで、rootでログインするパスワードを忘れてしまった!

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

と、エラーになってしまう!

MySQL 5.6 と 5.7

MySQL 5.6 までの時代では、
mysqld_safe
コマンドで起動をして・・・・と、rootのパスワードを設定していましたが、

今が、主流の、MySQL 5.7では、より簡単に、再設定ができます。

MySQL 5.7 rootパスワード再設定

# service mysqld stop
(systemctl stop mysqld)

# vi /etc/my.cnf

skip-grant-tables
を加える

# service mysqld start
(systemctl start mysqld)

# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, 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> 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 authentication_string= password('(新しいパスワード)') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

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

↑と、新しいパスワードを再設定します。
# service mysqld stop
(systemctl stop mysqld)

# vi /etc/my.cnf

skip-grant-tables
を削除

# service mysqld start
(systemctl start mysqld)

これで、今まで通り作業をします。

タイトルとURLをコピーしました