Я пытаюсь перенести существующую установку Wordpress из экспортированного файла SQL в локальную среду разработки Docker. Я немного новичок в Docker, но я прошел некоторые уроки и документацию. Проблема заключается в том, что службы «wordpress» и «phpmyadmin» не могут получить доступ к базе данных.
Я выполнил поиск и замену в Vim в файле SQL, чтобы заменить экземпляры исходного URL-адреса на «http://localhost: 8000 ». Затем я использовал docker -compose.
# docker-compose.yml
version: "3.7"
services:
db:
image: mysql:5.7.29
volumes:
- ./dbdata-import/:/docker-entrypoint-initdb.d/ # Where my exported SQL file is stored
# I also tried -./dbdata-import/thedata.sql:/docker-entrypoint-initdb.d/thedata.sql
- ./dbdata:/var/lib/mysql # So local database changes persist
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wp_database
MYSQL_USER: wp_username
MYSQL_PASSWORD: wp_password
wordpress:
depends_on:
- db
image: wordpress:php7.3-apache
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wp_username
WORDPRESS_DB_PASSWORD: wp_password
WORDPRESS_DB_NAME: wp_database
WORDPRESS_TABLE_PREFIX: wp_ #Tried without and without this
WORDPRESS_DEBUG: 1
volumes:
- ./wp-vol:/var/www/html
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin:4.9.4
container_name: phpmyadmin
environment:
PMA_HOST: db
PMA_USER: admin
PMA_PASSWORD: phpmyadmin_password
restart: always
ports:
- "8080:80"
Возможно, стоит отметить, что я использую это исправление , поэтому я все еще могу использовать OpenVPN. По сути, я создал su bnet, запустив docker network create localdev --su bnet 10.0.1.0/24. Я также добавил этот файл рядом с моим docker -compose.yml:
# docker-compose.override.yml
version: '3.7'
networks:
default:
external:
name: localdev
Когда я получаю доступ к http://localhost: 8000 , я не получить что-нибудь, и браузер тайм-аут. Когда я получаю доступ к http://localhost: 8080 для PHPMyAdmin, я получаю сообщение об ошибке:
MySQL said: Documentation
Cannot connect: invalid settings.
mysqli_real_connect(): (HY000/1045): Access denied for user 'admin'@'10.0.1.3' (using password: YES)
phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.
Кажется странным, что это будет проблема с учетными данными. Я извлек информацию базы данных Wordpress прямо из wp-config. php на хост-сервере. Я также проверил базу данных, имя пользователя и пароль, войдя в CLI MySQL на хост-сервере.
Я использовал docker -compose down -v для удаления томов после завершения работы и docker тома ls кажутся пустыми. Так что я не думаю, что это проблема с / docker -entrypoint-initdb.d / , не запущенным, потому что MySQL уже запущен. Однако я не уверен.
Я уже некоторое время устраняю неполадки. Я выполнил почти идентичную Docker установку без / docker -entrypoint-initdb.d для создания бесплатных sh установок Wordpress. Это прекрасно работает. Я мог бы действительно использовать некоторую помощь. В настоящее время я использую Debian 10. Спасибо.
ОБНОВЛЕНИЕ: У меня все еще есть проблемы. Я проверил, что у меня все еще есть те же проблемы, когда я закрываю OpenVPN, удаляю docker -compose.override.yml и удаляю сеть localdev. У меня все те же проблемы. Единственное отличие состоит в том, что PHPMyAdmin дает мне другой IP-адрес после «admin @», что ожидается.
Я вошел в свой контейнер MySQL, используя docker exe c -it . Запуск MySQL CLI с моим именем пользователя и паролем работал. Таблицы выглядели так, как будто все данные были импортированы docker -entrypoint-initdb.d. Таким образом, проблема не в docker -entrypoint-initdb.d, а в том, что службы wordpress и phpmyadmin не могут получить доступ к базе данных.
UPDATE 2: я исправил MyPHPAdmin. Я не осознавал, что PMA_USER и PMA_PASSWORD должны соответствовать базе данных Wordpress. Мне также нужно было PMA_HOST, чтобы включить номер порта:
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin:4.9.4
environment:
PMA_HOST: db:3306
PMA_USER: wp_username
PMA_PASSWORD: wp_password
restart: always
ports:
- "8080:80"
Мне все еще нужна помощь с Wordpress.