【问题标题】:WordPress docker container does not start with mysql:latest imageWordPress docker 容器不以 mysql:latest image 开头
【发布时间】:2019-06-27 13:23:25
【问题描述】:

我已经用 mariadb 容器设置了 wordpress,没有任何问题。

现在我正在尝试用 mysql 测试 wordpress。

使用的命令:

$ docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=Password1234 -d mysql
$ docker run --name wordpress01 --link mysql01 -p 8080:80 -e WORDPRESS_DB_HOST=mysql01:3306 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=Password1234 -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_TABLE_PREFIX=wp_ -d wordpress

容器状态:

$ docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                 NAMES
e71299679e73        mysql               "docker-entrypoint..."   2 minutes ago       Up 2 minutes        3306/tcp, 33060/tcp   mysql01

$ docker ps -a 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                 NAMES
c0a7dd46fb33        wordpress           "docker-entrypoint..."   5 minutes ago       Exited (1) 4 minutes ago                         wordpress01
e71299679e73        mysql               "docker-entrypoint..."   7 minutes ago       Up 7 minutes               3306/tcp, 33060/tcp   mysql01

错误日志:

$ docker logs wordpress01 
WordPress not found in /var/www/html - copying now...
Complete! WordPress has been successfully copied to /var/www/html

Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22

MySQL Connection Error: (2002) Connection refused

Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22

MySQL Connection Error: (2002) Connection refused

Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22

MySQL Connection Error: (2002) Connection refused

Warning: mysqli::__construct(): The server requested authentication method unknown to the client [caching_sha2_password] in Standard input code on line 22

Warning: mysqli::__construct(): (HY000/2054): The server requested authentication method unknown to the client in Standard input code on line 22

MySQL Connection Error: (2054) The server requested authentication method unknown to the client
...

【问题讨论】:

    标签: mysql wordpress docker


    【解决方案1】:

    正如here 所述,默认情况下,WordPress 无法与 MySQL v8 一起使用。此外,wordpress docker image readme 中的示例使用 MySQL v5.7。将 mysql 版本更改为 5.7 应该可以完成这项工作。

    docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=Password1234 -d mysql:5.7
    

    如果您需要使用mysql:latest docker 映像,使用--default-authentication-plugin=mysql_native_password 参数启动mysql 也应该像here 中提到的那样工作。

    docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=Password1234 -d mysql --default-authentication-plugin=mysql_native_password
    

    【讨论】:

    • 与 mysql:latest 相同的错误 .. 它不适用于上述参数。 --default-authentication-plugin=mysql_native_password
    • 通过docker logs -f mysql01检查mysql容器是否启动成功。如果在启动 mysql 容器后立即启动 wordpress 容器,您可能会收到连接拒绝错误,因为 mysql 需要一些时间才能启动。如果你明白了,请尝试使用docker rm -f wordpress01 删除 wordpress 容器,然后再次启动 wordpress 容器,然后检查docker logs -f wordpress01
    猜你喜欢
    • 2016-07-10
    • 1970-01-01
    • 2016-03-18
    • 2016-12-28
    • 1970-01-01
    • 2021-07-19
    • 2019-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多