Laravel Sailを使って構築した環境にphpMyAdminを追加しましたが、ログインしようとすると以下のエラーが出てログイン出来ませんでした。
mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
どうやら、パスワードの認証方式を変更しないといけないようです
参考
しかし、sail mysqlコマンドではrootでログインする事が出来ません。
そこでsailではなくmysqlのコンテナに直接ログインするためにコンテナIDを調べます。
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
xxxxxxxxxxxx mysql/mysql-server:8.0 "/entrypoint.sh mysq…" 30 minutes ago Up 30 minutes (healthy) 0.0.0.0:3306->3306/tcp, 33060-33061/tcp test-app-mysql-1
調べたコンテナIDを使ってmysqlのコンテナに入ります。
% docker exec -it xxxxxxxxxx /bin/bash
# mysql -u root -p
mysql> use mysql;
mysql> alter user 'sail'@'%' identified with mysql_native_password by '.envに記載したパスワード';
これで無事phpMyAdminからログインする事ができるようになりました。
こちらの記事を参考にさせていただきました
しかし、ここまでやった後dockerデスクトップから簡単にシェルに入れる事に気がつきました。。