【问题标题】:Wordpress database connection issue in mysqlmysql中的Wordpress数据库连接问题
【发布时间】:2021-08-23 16:43:35
【问题描述】:

我尝试在 CentOS (8.4.2105) 中设置 Wordpress,但在启动 wordpress docker 容器时遇到了问题: “建立数据库连接时出错”

这是我做的步骤:

1. docker-compose.yaml

version: '3.2'
services:
 # Database
 db:
   image: mysql:5.7
   volumes: ['/var/lib/mysql']
   restart: always
   environment:
     MYSQL_ROOT_PASSWORD: password
     MYSQL_DATABASE: wordpress
     MYSQL_USER: wordpress
     MYSQL_PASSWORD: wordpress
   networks:
     - wpsite
 wordpress:
   depends_on:
     - db
   image: wordpress:latest
   ports:
     - '8000:80'
   restart: always
   volumes: ['./:/var/www/html/example.com']
   environment:
     WORDPRESS_DB_HOST: db:3306
     WORDPRESS_DB_USER: wordpress
     WORDPRESS_DB_PASSWORD: wordpress
   networks:
     - wpsite
networks:
  wpsite:

2。通过 PHP 代码检查数据库连接

返回失败

<?php 
$link = mysqli_connect('db', 'wordpress', 'wordpress', 'wordpress', '3306'); 
if (!$link) { 
echo 'failed';
return; 
} 
echo 'Connected successfully'; 
mysqli_close($link); 
?>

wordpress无法启动是可以理解的,因为php代码已经无法建立与上面测试启动的mysql容器的连接。但是我仍然可以在 cmd cli 中登录或创建新数据库。我也按照设置说明进行操作,但仍然无法弄清楚造成数据库连接问题的原因。

这是我关注的网站: https://docs.docker.com/samples/wordpress/

根本原因是什么,我该如何解决?是因为 docker mysql 容器吗?似乎问题已抛出,但没有要检查的日志。

【问题讨论】:

    标签: php mysql wordpress docker


    【解决方案1】:

    如果你服用会发生什么:

    environment:
         MYSQL_ROOT_PASSWORD: password
    

    所以

    mysqli_connect(host, username, password, dbname, port, socket)
    $link = mysqli_connect('db', 'wordpress', 'password', 'wordpress', '3306'); 
    

    也许在你的 docker-compose.yaml

    中改变它
    WORDPRESS_DB_HOST: db
    

    【讨论】:

    • 也不行。我猜这可能是因为 docker 的网络。我正在尝试删除 docker compose 中的“network”属性
    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2015-01-21
    • 2015-04-04
    • 2020-12-16
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多