ローカル環境で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も動くようになった(はず)