質問: mysqlはどこのようにアクセスを修正するにはユーザー 'root' @ 'localhost'のために拒否されました $ mysql -u root -pを使用してログインし、データベースを表示したときに何かがおかしくなる前に、+--------------------+ | database | +--------------------+ | information_schema | | mysql | | performance_schema | | game_data | | test | +--------------------+ それから私は新しいユーザーを作成しようとしましたが、privilegesに何か問題があることに気づきました。だから私は新しいユーザーを削除し、私は誤って 'root'と 'admin'を削除したと思います。それから私は再び「root」を作成しようとしますが、すべての特権を付与するときにaccess deniedエラーを取得します。mysql> create user 'root'@'localhost' identified by 'password'; mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'password' with grant option; error 1045 (28000): access denied for user 'root'@'localhost' (using password: yes) $ mysql -u root -pを使用してmysqlに再度ログインし、データベースを表示すると、+--------------------+ | database | +--------------------+ | information_schema | +--------------------+ 他のデータベースはすべてなくなりました。mysqlを今すぐ修正するにはどうすればよいですか?データベース 'mysql'が見つからない、データベースを作成できない、ユーザーを作成できない、などとするとエラーが発生します。 エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:yes)。 macportを使ってmysqlを再インストールする必要がありますか?再インストールすると、データベースgame_dataを失うことになりますね。
回答: 上記のどれも私にとって役に立ちませんでした。プラグインメソッドをクリアする必要があることがわかりました。 5.6では、私はすることができました:sudo mysql -u root use mysql; [mysql] update user set plugin='' where user='root'; [mysql] flush privileges; 5.7では、次のことが必要になりました。sudo mysql -u root use mysql; [mysql] update user set plugin='mysql_native_password' where user='root'; [mysql] flush privileges; docsによると、プラグインを空の文字列に設定すると、事実上mysql_native_passwordにデフォルト設定されているはずですが、空のパスワードハッシュによって混乱するかもしれません。よりニュアンスのために、あなたはここでドキュメンテーションを読むことができます: https://dev.mysql.com/doc/refman/5.7/en/native-authentication-plugin.html