mysql8.0からの認証方式は
caching_sha2_password
が採用されていますが、接続側もこの認証方式に対応していない場合はうまくログインできません。このため、従来の認証方式である
mysql_native_password
でログイン可能なようにDockerfile
を作成します。 Dockerファイル作成
Dockerfile作成の前に認証方式を変更するファイルを作成します。 ファイル名はdefault-authentication.cnf
というファイルを作成し、以下のとおり記載します。 [mysqld]
default_authentication_plugin= mysql_native_password
そして、以下のDockerfile
を準備します。 FROM mysql:latest
EXPOSE 3306
ADD default-authentication.cnf /etc/mysql/conf.d
CMD ["mysqld"]
これで、最新版のmysqlを使用しつつ、コンテナ側のポート3306を開放した状態にになります。後はdocker runするときに、任意のローカルポートと3306を紐付ければ、ローカルからアクセス可能になります。
コメント