DOCKER + PDO:SQLSTATE [HY000] [2002]无法通过socket' /var/run/mysqld/mysqld.sock&#39连接到本地MySQL服务器; (2)

时间:2016-08-21 15:30:29

标签: php database pdo docker

尝试将dockerized PHP-Application连接到MySQL-Container时,出现以下错误:SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Dockerfile:

FROM tutum/apache-php
RUN rm -fr /app
COPY . /app

ENV DB_HOST=192.168.99.100
ENV DB_NAME=azk
ENV DB_USER=root
ENV DB_PW=my-secret-pw

如果我不使用PDO,那么连接是有效的,所以PDO会出现问题,但我不知道是什么......

1 个答案:

答案 0 :(得分:0)

PDO使用unix套接字连接而不是tcp。请参阅answer如何强制使用tcp连接。

在您的情况下,您可能没有将ENV DB_HOST应用于php应用程序配置文件。 (您可以使用x=10; y = --x + x++; // y = (10-1) /* now x==9 */ + (9); /* after this x == 10 */ // y = (9) + (9); /* and now x == 10 */ // y == 18 and x == 10 功能)