MySQL 8.0 で、rootのパスワードを忘れた場合の覚え書き。
mysqld_safe
いろいろ検索をすると、「mysqld_safe」での方法が出てきます。
# find / -name mysqld_safe
↑今回の、RockyLinux 9.2 に入れた、MySQL 8.0では、このコマンドがありません。
違う方法で、再設定を行います。
再設定、パスワードを、なしに
# vi /etc/my.cnf [mysqld] skip-grant-tables
↑[mysqld]セクションで、「skip-grant-tables」を加えます。
# systemctl restart mysqld
↑mysqld を、再起動させます。
# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 8.0.30 Source distribution Copyright (c) 2000, 2022, Oracle and/or its affiliates. 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> UPDATE user SET authentication_string=NULL WHERE user='root'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
↑一度、パスワードを消します(ナシにします)。
# vi /etc/my.cnf [mysqld] skip-grant-tables
↑上記の「skip-grant-tables」を消します(無効にします)。
パスワードの再設定
# systemctl restart mysqld
↑mysqlのサービスを再起動します。
# mysql -u root -p Enter password: (そのまま、Enter) Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.30 Source distribution Copyright (c) 2000, 2022, Oracle and/or its affiliates. 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>
↑「-p」オプションをつけます。パスワードを求められたら、そのまま「Enter」キーを押します。
入れました。
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> ALTER USER 'root'@'localhost' identified BY '(新しいパスワード)'; Query OK, 0 rows affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
↑新しいパスワードを設定します。
新しいパスワードの確認
# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
↑パスワード「なし」では、入れませんでした
# mysql -u root -p Enter password: (新しいパスワード) Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.30 Source distribution Copyright (c) 2000, 2022, Oracle and/or its affiliates. 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>
↑設定したパスワードで入れました。