phpMyAdmin の Docker 公式イメージで、使いやすいように何ヶ所か手を入れてみました。
権限付与
phpMyAdmin 用の管理者ユーザを作成した際に GRANT
権限がなかったので付け足し。
複数のDBを用意して個別のユーザを作ったりすると GRANT
がないと他ユーザに権限付与できないので。
workspace/entrypoint_db.sh
- sudo mysql -u root -p${DB_INIT_PASSWORD} --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${2}'; CREATE USER '${3}'@'%' IDENTIFIED BY '${4}'; GRANT ALL ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES;"
+ sudo mysql -u root -p${DB_INIT_PASSWORD} --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${2}'; CREATE USER '${3}'@'%' IDENTIFIED BY '${4}'; GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"
エントリポイントでユーザ作成時に WITH GRANT OPTION
を付けました。
phpmyadmin-misc.ini 追加
デフォルトではイメージの中にある phpMyAdmin 用の phpmyadmin-misc.ini
をホストと共有し、設定を編集できるようにします。
docker-compose.yml
# 略
phpmyadmin:
image: phpmyadmin/phpmyadmin
labels:
lamp.ambergrease.yacht: "Ambergrease phpMyAdmin"
volumes:
# sessions
- ./phpmyadmin/sessions:/sessions
# 次の一行を追加
- ./phpmyadmin/conf/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
# 略
phpmyadmin-misc.ini
allow_url_fopen = Off
max_execution_time = 600
memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M
SQL文アップロード時のファイルサイズ制限の上限値とメモリ使用量の上限値の上昇が設定のメインです。
これでカスタマイズや検証環境の構築がやりやすくなりました。
参考
phpMyAdmin用ユーザにGRANT付与
WITH GRANT OPTION
を付ける。
Docker の phpMyAdmin のファイルアップロード容量を増加させる
- ローカル環境のphpMyAdminでIncorrect format parameterエラーが出た場合の対処方法 – 株式会社I-SEED(アイシード)|大阪・心斎橋のWEB制作集団
- docker-compose phpmyadmin アップロード制限緩和設定 | 優技録
ちなみにWebサーバ側からDBサーバにアクセスする際のホスト名はdocker-compose.yml
のservices
の名前で良い。