MySQL8.0の認証方式のデフォルトは「caching_sha2_password」になっていますが、利用の言語環境等のMySQLドライバによっては、「caching_sha2_password」に対応しておらず「コマンドラインでmysqlに接続する分には接続出来るんだけれど、◯◯からは接続出来ない」みたいな状態が発生する事になるので、認証方式を「mysql_native_password」に変更してやる必要があります。 そういう場合の対処方法について紹介します。
現在の各ユーザの認証方式を確認する方法
MySQLで
select user,plugin from mysql.user;
とする事でユーザの一覧とそれぞれの現在の認証方式を確認する事が出来ます。
認証方式を変更する方法
ALTER USERで認証方式を変更する事ができます。
alter user 'hoge'@'localhost' identified with mysql_native_password by 'password';
今後追加するユーザのデフォルトの認証形式を変更する場合
既に追加済みのユーザの認証方式は上述しているALTER USER で変更する必要がありますが、/etc/my.cnfに以下を追加する事で今後追加するユーザの認証方式を「mysql_native_password」に固定する事が出来ます。
default_authentication_plugin=mysql_native_password
利用言語のドライバ等が「caching_sha2_password」に対応していない場合に便利かもしれません。