【发布时间】:2020-01-22 13:04:28
【问题描述】:
我刚刚遇到了这个
PDOException: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/inc/config/db.php on line 11
一开始我以为是mysql服务器的问题,但经过几个小时的尝试和错误,我发现错误来自PDO,如果使用mysqli_connect根本没有错误
$conn = new PDO("mysql:host=127.0.0.1;dbname=docker", "root", "tiger");
$conn = mysqli_connect("mysql", "root", "tiger", null);
我也尝试过不同的数据库,甚至是新创建的数据库
有谁知道为什么一个工作另一个不工作? ?
编辑: 我正在使用 docker-compose 来设置环境。 这里是 docker-compose.yaml
version: "3"
services:
webserver:
build:
context: ./bin/webserver
container_name: '7.1.x-webserver'
restart: 'always'
ports:
- "80:80"
- "443:443"
links:
- mysql
volumes:
- ${DOCUMENT_ROOT-./www}:/var/www/html
- ./config/php/php.ini:/usr/local/etc/php/php.ini
- ${VHOSTS_DIR-./config/vhosts}:/etc/apache2/sites-enabled
- ${LOG_DIR-./logs/apache2}:/var/log/apache2
mysql:
build: ./bin/mysql
container_name: '5.7-mysql'
restart: 'always'
ports:
- "3306:3306"
volumes:
- ${MYSQL_DATA_DIR-./data/mysql}:/var/lib/mysql
- ${MYSQL_LOG_DIR-./logs/mysql}:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: tiger
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: 'sc-phpmyadmin'
links:
- mysql
environment:
PMA_HOST: mysql
PMA_PORT: 3306
ports:
- '8080:80'
volumes:
- /sessions
redis:
container_name: 'sc-redis'
image: redis:latest
ports:
- "6379:6379"
mongo:
container_name: 'mongodb'
image: mongo:4.0.12-xenial
restart: 'always'
ports:
- "${HOST_MACHINE_MONGO_PORT}:27017"
volumes:
- ${MONGO_DATA_DIR-./data/mongodb}:/data/db
- ${MONGO_LOG_DIR-./logs/mongodb/mongod.log}:/var/log/mongodb/mongod.log
- ${MONGO_CONF-./config/mongodb/mongod.conf}:/etc/mongod.conf
【问题讨论】:
-
mysql适用于带有mysqli的主机名? -
你的意思是本地主机吗?如果我将 127.0.0.1 更改为 localhost,pdo 不会给出文件错误