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 [mysqld] 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)
これで、今まで通り作業をします。