結論
落ち着いて docker-compose.yml の設定を理解しつつ調整すべし…。
経緯
MySqlのダンプファイル (*.sql) をDBに反映させたかったのだけれど、
- GUIのSQLツールでやろうとしたら、なんかうまく行かなかった。
- 毎回 docker exec でコンテナに入って mysql コマンド…はダルい。
と言うわけで phpMyAdmin でインポートするのが一番楽そう。
既に環境が docker で作られてるので、そこに phpMyAdmin のコンテナ立てれば早いかなー、と思ったら予想外に躓いたお話。
PMA_USER と PMA_PASSWORD 要らなかった
エラー
MySQL のメッセージ: ドキュメント
接続できません。設定が無効です。
mysqli_real_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known
mysqli_real_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known
MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください。
PMA_HOST: db
を
PMA_HOST: localhost
を変えてみたりしたけど変わらず。
# PMA_USER: root # PMA_PASSWORD: root
とコメントアウトしたら無事ログイン画面出現。
ログイン画面の「サーバー」はlocalhostじゃなかった
dockerでMySQL立ててるので、そのサーバーのIPを指定する。
今回、 Windows で Docker ToolBox を使用していたため、192.168.99.100 を指定する。
ユーザー/パスワードは MySQL で設定してるやつ。
アップロードできるファイルサイズ(最長:*MiB)を変更したいけど php.ini の指定間違ってた
ネットで検索した結果をそのままコピーして
volumes: - ./docker/phpmyadmin/upload.ini:/usr/local/etc/php/php.ini
ってやってみたけど、コンテナの中にそんなファイル無かった。
最終的に自分の環境では
./docker/phpmyadmin/phpmyadmin-misc.ini を新規作成して
allow_url_fopen = Off max_execution_time = 600 memory_limit = 64M post_max_size = 64M upload_max_filesize = 64M
と記載。(上から3行はコンテナ内の同名ファイルに書かれていたものをそのままコピー)
docker-compose.yml を書き換えて、
volumes: - ./docker/phpmyadmin/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
で解決。(ファイルの整合性が取れてなくて、そもそも docker-compose up でコンソールにエラー表示されて立ち上がらなかった。)
docker exec -it phpmyadmin_1 /bin/bash
とかでコンテナの中に入り、実際どこにiniファイルがあるかを調べるべし。
DROP DATABASE を許可する
phpMyAdmin の画面から SQL で
drop database my_database_name;
とやろうとしたら「DROP DATABASE 文は無効にされています。」と怒られて出来なかったので、これを許可する。
volumes: - ./docker/phpmyadmin/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini - ./docker/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
と、最後の1行を追加。
docker\phpmyadmin\config.user.inc.php を新規作成して、
<?php $cfg['AllowUserDropDatabase'] = true;
と書いて、docker-composer を再UP。
#取り敢えず現象報告のみ、それぞれの事象について「なぜそうなったのか?」が深堀り出来てない記事になってしまったなぁ…。
コメントを残す