###概要
docker-compose にアプリとデータベースのコンテナをビルドする際、アプリからデータベースへ接続出来ず困っています。
ビルド時のアプリ側で、アプリケーションをインストールする際、データベース(MySQL)への接続が必要になり、その際に下記のエラーが表示され進めません。
SQLSTATE[HY000] [2002] No such file or directory ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
###試した事
データベースに問題あると思い下記を試しました。
1)docker-compose.ymlのDBを下記から下記に変更
14 db: 15 ¦image: mysql:5.7 16 ¦ports: 17 ¦¦- '3306:3306' 18 ¦environment: 19 ¦¦MYSQL_ROOT_PASSWORD: hogehoge 20 ¦¦MYSQL_ROOT_HOST: localhost 21 ¦¦MYSQL_DATABASE: magento 22 ¦¦MYSQL_USER: magento 23 ¦¦MYSQL_PASSWORD: hogegoge 24 ¦volumes: 25 ¦- ./data/db-data:/var/lib/mysql 26 ¦- ./data/docker-logs/mysql:/var/log/mysql
14 db: 15 ¦build: ./mysql/ 16 ¦volumes: 17 ¦- ./data/db-data:/var/lib/mysql 18 ¦- ./data/sqls:/docker-entrypoint-initdb.d 19 ¦- ./data/docker-logs/mysql:/var/log/mysql 20 ¦environment: 21 ¦- MYSQL_ROOT_PASSWORD=PASSWORD 22 ¦- MYSQL_ROOT_HOST=localhost
- アプリケーション側にMySQLクライアントのインストール
apt install -y mysql-server mysql-client
接続を試みましたが、概要欄のエラーと同じエラーが発生しました。
mysql -u magento -p hogegoge -h magento
###質問
- これらの件はビルド時に発生しており、「docker-compose up」まで辿り着いていません。ということはデータベースはビルド時にまだ起動していない(接続できる状態ではない)という事ですか?
それですと、ビルド時に接続出来ない事が納得出来ます。
docker-composeでデータベースだけビルド、起動させておくことは可能ですか?
- iptablesの設定の問題でしょうか?
iptableの設定を行いましたが、エラーは変わりませんでした。
回答1件
あなたの回答
tips
プレビュー