我正在尝试用Docker Compose在本地设置WordPress+MySQL,并且不断地出现臭名昭著的“建立数据库连接的错误”错误。我在运行Mojave的Mac上,有127.0.0.1映射到
mysite.local
在下面
/etc/hosts
. 下面是我的docker-compose.yml(很明显,mysite和密码项是替换的):
version: '3'
services:
mysite-wp-db:
image: mysql:latest
volumes:
- ./db/initdb.d:/docker-entrypoint-initdb.d
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root_pwd
MYSQL_DATABASE: wordpress
MYSQL_USER: some_user
MYSQL_PASSWORD: pwd
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
PMA_HOST: mysite-wp-db
MYSQL_ROOT_PASSWORD: root_pwd
PMA_ABSOLUTE_URI: http://mysite.local/
ports:
- "8080:80"
restart: always
depends_on:
- mysite-wp-db
mysite-wp:
depends_on:
- mysite-wp-db
image: wordpress:latest
restart: always
expose:
- "80"
environment:
- VIRTUAL_PORT=80
- VIRTUAL_HOST=mysite.org,mysite.com,mysite.local
volumes:
- ./wp:/var/www/html
networks:
default:
external:
name: mysite-nginx-proxy
我正在使用流行的jwilder/nginx代理容器运行这个。您还可以看到我也在运行phpmyadmin,这很好-我可以使用compose文件中指定的密码登录,并且可以看到数据库具有正确的名称,并从下面的sql转储文件填充
./db/initdb.d
. 阿尔索
docker exec -it <container_id> bin/bash
显示wp卷已装入容器,wp-config.php文件在其中最初我只是挂载wp contents文件夹,但即使挂载整个wp文件夹也会给我同样的错误。我也尝试过各种版本的mySQL(5.6,5.7,最新)。所有人都会犯同样的错误。非常令人沮丧。
更让人沮丧的是,几个月前我就把这些都做了。这几乎是第一次。没有什么真正的改变,尽管现在有更多的内容,所以数据库转储文件要大得多(c.14MB)。我可能做错了什么?
如果我访问mysite.local,就会得到“建立数据库连接时出错”。如果我访问mysite.local/wp/I则获取Apache“内部服务器错误”
注意:网站的最初开发是在127.0.0.1的AMPPS WordPress安装下进行的。我只是将数据库导出到一个转储文件中,并将127.0.0.1的所有出现项更改为
mysite.local网站
.
更新
:设置
WP_DEBUG
到
true
提供以下浏览器错误消息:
警告:mysqli_real_connect():服务器请求身份验证
中的客户端[缓存密码]未知的方法
/var/www/html/wp includes/wp-db.php在线1531
这就是wp includes/wp-db.php中1530-33行的内容:
if ( WP_DEBUG ) {
mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
} else {
@mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
}