mysql用のDockerfile作成(認証方式の変更も含むよ)


mysqlのDockerfileの作成についてです。
mysql8.0からの認証方式はcaching_sha2_passwordが採用されていますが、接続側もこの認証方式に対応していない場合はうまくログインできません。

このため、従来の認証方式であるmysql_native_passwordでログイン可能なようにDockerfileを作成します。

Dockerファイル作成

Dockerfile作成の前に認証方式を変更するファイルを作成します。
ファイル名はdefault-authentication.cnfというファイルを作成し、以下のとおり記載します。

[mysqld]
default_authentication_plugin= mysql_native_password

そして、以下のDockerfileを準備します。

Terminal window
FROM mysql:latest
EXPOSE 3306
ADD default-authentication.cnf /etc/mysql/conf.d
CMD ["mysqld"]

これで、最新版のmysqlを使用しつつ、コンテナ側のポート3306を開放した状態にになります。
後はdocker runするときに、任意のローカルポートと3306を紐付ければ、ローカルからアクセス可能になります。