LoginSignup
2
2

More than 3 years have passed since last update.

MySQL8から認証方式が変わったらしいが従来の認証方式に戻す

Last updated at Posted at 2019-10-27

ローカル環境でMySQL8.0をAdminerから確認する

DB(MySQL8.0)を見るためにPHPのビルトインサーバーphp -S localhost:8000を起動してAdminerから確認しようと思いログインすると以下のエラーが発生。

The server requested authentication method unknown to the client

ログインできない

MySQL8から認証方式が変わった

デフォルトの認証方式がmysql_native_passwordから*ハッシュ化方式caching_sha2_passwordへ変更されたらしい
で、それが原因でエラーがでるらしいのでとりあえず以前の認証方式へ戻す対応をします。

以下のコマンドをMySQLにログインし後実行

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

※今回はローカルかつ重要でないテスト用の環境なので上記のパスワード設定ですが本番環境などでは推奨できません

ついでにMariaDBについて

ローカル環境はMySQL8を使用して、仮想環境にはCentoOS7にデフォルトで入っているMariaDBを使用したのですが、その際にもエラー(1045: Access denied for user 'root'@'localhost' (using password: YES))が出たので以下のコマンドを追加で実行した

権限テーブルの再読み込み

DBにログインし、上記の認証方式へ戻すコマンドを実行後以下のコマンド(権限テーブルの再読み込み)実行

flush privileges;

サービスの再起動

systemctl stop mysqld
systemctl start mysqld

これでMariaDBも動くようになった(はず)

参考URL

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2