概要
環境強変数での設定とオプションの指定方法を紹介します
環境
- Ubuntu 22.04
- docker 25.03
- MySQL 8.3.0
起動
認証プラグインと文字コードを指定して起動します
パスワード情報は環境変数経由で設定します
今回はテストなのでデータの永続化はしていません
docker run --rm --name=mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=xxxxxxxx \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=xxxxxxxx \
mysql:8.3.0 --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4
接続
-
mysql -u test -p test -h 127.0.0.1
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
docker で起動した場合は必ず -h を指定する必要があります
プラグイン変更
--default-authentication-plugin=mysql_native_password
だと警告が表示されるので別のプラグインを使用します
caching_sha2_password
を使います
2024-04-08T01:44:53.610926Z 13 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'
docker run --rm --name=mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=xxxxxxxx \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=xxxxxxxx \
mysql:8.3.0 --default-authentication-plugin=caching_sha2_password --character-set-server=utf8mb4
docker の場合 --initialize-insecure オプションは使えないっぽい
以下のような警告が表示されるので --initialize-insecure
を付与してみたのですがコンテナがうまく起動できませんでした
2024-04-08T01:53:26.376301Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
docker run --rm --name=mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=xxxxxxxx \
-e MYSQL_DATABASE=test \
-e MYSQL_USER=test \
-e MYSQL_PASSWORD=xxxxxxxx \
mysql:8.3.0 --default-authentication-plugin=caching_sha2_password --character-set-server=utf8mb4 --initialize-insecure --user=mysql
証明書対策
以下の警告が表示されます
2024-04-08T01:53:30.653497Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
デフォルトの場合は独自で証明書を生成するようです
今回はテストなので証明書は自己証明書のままにしています
最後に
docker で mysql8 を動かしてみました
mysqld.cnf などを使っても設定できるようですが引数でもいろいろと設定可能です
0 件のコメント:
コメントを投稿