Как установить соединение с базой данных из WordPress Docker - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь запустить докер, создающий WordPress, используя это руководство: https://docs.docker.com/compose/wordpress/

Это файл yaml, как описано в руководстве:

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
       WORDPRESS_DB_NAME: wordpress
       WORDPRESS_DEBUG: "true"
volumes:
    db_data: {}

После того, как я запустил

"docker-compose up -d" 
Команда

, я захожу на «http://localhost:8000/"» в моем браузере и получаю белую страницу с «Ошибка при установлении соединения с базой данных». Согласно руководству, WordPress должен показать мне 5-минутную установку уже на этом этапе. Когда я запускаю контейнер с wordpress debug true, появляется следующее сообщение об ошибке:

Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /var/www/html/wp-includes/wp-db.php on line 1612

Отказано в соединении

Я сейчас использую

docker exec it container_id /bin/bash 

и введите "mysql -p". Теперь я использую MYSQL_ROOT_PASSWORD из файла компоновки Docker, но мне отказано в доступе («Доступ запрещен для пользователя« root »@« localhost »(с использованием пароля: YES)»)

Я не уверен, что я делал раньше, но в какой-то момент это сработало, и я перечислил базы данных, и там были mysql.users и db и пользователь.

Так что я даже не знаю, в чем здесь проблема ...

И почему я больше не могу получить доступ с правами root? Кто-нибудь знает, что делать?

РЕДАКТИРОВАТЬ: изменил порт обратно на 3306, я попытался 3308 просто чтобы посмотреть, может ли это быть проблема порта

1 Ответ

0 голосов
/ 29 марта 2019

Я нашел другой пост, и они использовали этот yaml. Все еще не уверен, почему это работает, но это делает.

version: '3.3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - 8000:80
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data: {}
...