web-dev-qa-db-ja.com

MySQL 8.0.11でルートパスワードをリセットする方法

実際にルートパスワードを紛失したため、変更する必要があります。私はこれらの手順に従います:

  • ステップ#1:MySQLサーバープロセスを停止します。

    ステップ#2:--skip-grant-tablesオプションを使用してMySQL(mysqld)サーバー/デーモンプロセスを起動し、パスワードの入力を求めないようにします。

    ステップ#3:MySQLサーバーにrootユーザーとして接続します。

これらのウェブサイトで見つけることができます: https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords#recover-mysql-root-password

mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("TOOR");
mysql> flush privileges;
mysql> quit

最初のエラーなので、私は試しました:

mysql> use mysql;
mysql> update user set password=PASSWORD("TOOR") where User='root';
mysql> flush privileges;
mysql> quit

常に同じエラーが言った:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '("TOO
R") WHERE User='root'' at line 1

どうすれば解決できますか?

11
Mangue Sutcliff

ここ のように:

この関数はMySQL 8.0.11で削除されました

1.スキップグラントテーブルモードの場合
mysqld_safe:

UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
exit;

そして、ターミナルで:

mysql -u root

mysqlの場合:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

2. skip-grant-tablesモードではない
mysqlの場合:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
25
Jack Chern

これを試して:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPasswd';
4
Jitesh Middha