Я только что столкнулся с этим
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