[英]Can't connect to MySQL inside docker image
我已經找到了與此主題相關的一些主題,但是沒有一個主題可以幫助我,因為我已經做了提供的解決方案,或者問題與我的不完全相同。
我有一個帶有nginx / php-fpm等服務器的docker環境,並且正在使用我要鏈接到其他服務器的官方mysql映像。 這是我的碼頭工人組成
db:
image: mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=symfonyrootpass
- MYSQL_DATABASE=symfony
- MYSQL_USER=symfony
- MYSQL_PASSWORD=symfonypass
project:
image: docker.io/project/project-dev
ports:
- "80:80"
environment:
- XDEBUG_HOST=${LOCAL_IP}
- XDEBUG_PORT=9000
- XDEBUG_REMOTE_MODE=req
links:
- db
volumes:
- ../project:/var/www/app
當我啟動它並像這樣從主機連接時: mysql -h127.0.0.1 -usymfony -psymfonypass
,然后使用use symfony;
它沒有問題。 我看到我的數據庫,可以編輯,刪除,更新等。我可以做所有事情。
但是,我不能對docker說同樣的話。 我正在使用Symfony,並且在正確設置參數后,總是會收到錯誤消息
驅動程序中發生異常:SQLSTATE [HY000] [2002]連接被拒絕
這些是我的參數
database_host: 127.0.0.1
database_port: null
database_name: symfony
database_user: symfony
database_password: symfonypass
我已經嘗試將database_host
更改為localhost
但是隨后出現錯誤No such file or directory
具有相同的SQLSTATE。 我也嘗試將端口設置為3306
但這也無濟於事。
從docker內部訪問我的數據庫需要做什么?
這是config.yml
中描述我的mysql連接的部分
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
server_version: "%database_version%"
您的數據庫運行在與項目不同的容器中。 Docker-compose將為它提供一個IP地址和一個主機名,即db,因為這是您命名的方式。 因此, database_host不應為127.0.0.1或localhost,而應為db 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.