phpmyadminにログインできません。次のエラーが表示されます。
エラー1045(28000):ユーザー「root」@「localhost」へのアクセスが拒否されました(パスワードの使用:YES)。
実行のためにログインしようとしましたが、mysql -u root -p
同じエラーが表示されます。
答え1
以下の手順に従ってください。
--skip-grant-tables
オプション(セキュリティ設定)を使用してMySQLサーバーインスタンスまたはデーモンを起動します。$ mysqld --skip-grant-tables
新しい端末で次の文を実行します。
$ mysql -u root mysql $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root'; $mysql> FLUSH PRIVILEGES;
上記の不明なフィールドパスワードエラーが発生した場合は、次を使用してください。
update user set authentication_string=password('my_password') where user='root';
最後に、オプションなしでインスタンス/デーモンを再起動します
--skip-grant-tables
。$ /etc/init.d/mysql restart
これで、新しいパスワードを使用して接続できます。
$ mysql -u root -p
パスワードを入力:my_password
答え2
MySQL認証はどのように見えるかに応じて、「多くの驚くべきこと」(FUBAR)の1つです。さまざまなバージョンと設定では、さまざまな認証方法を使用できます。 Arzyfexのアドバイスは常に効果があるとは限りません。最良のアドバイスは、次のMySQLのマニュアルに従うことです。http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html。さまざまな認証形式を処理するために必ずmysql
使用してください。ただし、set password for root
そのオプションを使用してサーバーを起動すると、このコマンドは機能しません。--skip-grant-tables
したがって、規定された式は、mysqlサーバーを起動するコマンドを含む特別なinitファイルを使用することですset password
。