簡體   English   中英

Docker-組合WordPress MySql無法連接

[英]Docker-Compose WordPress MySql Can't Connect

嘗試連接到WordPress網站時出現502網關錯誤。 查看日志,我有此錯誤。

MySQL Connection Error: (1045) Access denied for user 'root'@'172.23.0.3' (using password: YES)

當我不更改密碼並將其全部保留在WordPress上時,它似乎可以工作。 我假設dockerfile僅使用默認密碼,但查看它們后,我只會看到它們是從環境中竊取的。 但這似乎不符合我設定的環境。

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

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8085:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: ******
volumes:
    db_data:

我希望*****是相同的密碼。

這是我的wordpress變量的轉儲:

HOSTNAME=55333eceeda8
PHP_INI_DIR=/usr/local/etc/php
PHP_ASC_URL=https://secure.php.net/get/php-5.6.30.tar.xz.asc/from/this/mirror
WORDPRESS_DB_PASSWORD=test
PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2
PHP_MD5=68753955a8964ae49064c6424f81eb3e
PHPIZE_DEPS=autoconf        file        g++         gcc         libc-dev        make        pkg-config      re2c
PHP_URL=https://secure.php.net/get/php-5.6.30.tar.xz/from/this/mirror
WORDPRESS_DB_HOST=db:3306
WORDPRESS_VERSION=4.7.2
PHP_LDFLAGS=-Wl,-O1 -Wl,--hash-style=both -pie
APACHE_ENVVARS=/etc/apache2/envvars
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
GPG_KEYS=0BD78B5F97500D450838F95DFE857D9A90D90EC1 6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3
PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2
PWD=/var/www/html
SHLVL=1
HOME=/root
PHP_SHA256=a363185c786432f75e3c7ff956b49c3369c3f6906a6b10459f8d1ddc22f70805
WORDPRESS_SHA1=7b687f1af589c337124e6247229af209ec1d52c3
APACHE_CONFDIR=/etc/apache2
PHP_EXTRA_BUILD_DEPS=apache2-dev
PHP_VERSION=5.6.30
PHP_EXTRA_CONFIGURE_ARGS=--with-apxs2
_=/usr/bin/env

我在那看到數據庫密碼。 這是SQL的:

root@50ec696f0f67:/# env                                                                                                                                                                                   
HOSTNAME=50ec696f0f67
MYSQL_VERSION=5.7.17-1debian8
MYSQL_DATABASE=wordpress
MYSQL_PASSWORD=test
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
HOME=/root
MYSQL_MAJOR=5.7
GOSU_VERSION=1.7
MYSQL_USER=wordpress
MYSQL_ROOT_PASSWORD=test
_=/usr/bin/env

我在這里看到兩個密碼。 因此由於某種原因,我的wordpress容器被mysql容器拒絕了。

警告:這是我服務器上唯一的容器,因此我不介意刪除所有內容。 盲目運行這些命令可以清除所有docker容器,卷等。

我可以通過刪除docker卷來解決我的問題。

即使您運行以下命令:

$ docker-compose stop && docker-compose rm -v

不刪除卷。

每次我嘗試創建一個新的docker容器時,它都會使用舊的卷,該舊卷將舊的mysql數據庫與舊的mysql users表一起存儲,因此,我的舊密碼將被更改且錯誤。

要擺脫舊的Docker卷,請使用:

docker volume rm $(docker volume ls -q )

將刪除所有泊塢窗卷。 然后重新構建,這將使用您的env變量使用更新后的表創建一個新卷。

一個修改了docker-compose的工作示例: https : //github.com/sahil87/wordpress-mysql-docker/blob/master/docker-compose.yml

變化:

使WORDPRESS_DB_HOST

WORDPRESS_DB_HOST: foldername_db_1.foldername_default:3306

這似乎是docker-compose工作方式還是mysql鏡像方式的最新變化,即使我僅使用該方式。 找不到關於它的任何文檔:(,花了2天的時間弄清楚。希望這可以節省您一些時間!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM