MySQL8から認証方式が変わったらしいが従来の認証方式に戻す
ローカル環境で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
Author And Source
この問題について(MySQL8から認証方式が変わったらしいが従来の認証方式に戻す), 我々は、より多くの情報をここで見つけました https://qiita.com/sola-msr/items/240d5d01d899f2a27c67著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .