docker wordpress Error establishing a database connection 方法之一

问题描述

在使用docker创建wordpress和mysql容器后,访问页面发生如下错误:

Error establishing a database connection

这个问题的原因在于当我在创建mysql容器时指定了创建数据库的密码,然而wordpress配置文件中数据库的连接密码不正确,所以出现上面的错误。

解决问题

   当我们使用wordpress创建容器后发现,如果进入到容器以后修改配置文件有些困难,因为这个容器里面并没有一些编辑工具,例如vi等,那么应该怎么解决呢?我们在创建这个容器时,可以将配置文件这个目录给映射到本地,通过在本地来进行修改:

1、创建wordpress服务 

[root@centos-7 docker]#  docker service create --name wordpress -p 80:80 --env WORDPRESS_DB-PASSWORD=root \
 --env WORDPRESS_DB_HOST=mysql --network demo \
 --mount type=volume,source=wordpress-config,destination=/var/www/html wordpress

  可以看到在创建这个容器时制定了--mount参数,这个在docker volume中相当于-v,只不过这里使用的是swarm而已,source参数后面的值就是映射到本地的目录,注意这个只能是相对路径,不能是绝对路径;destination参数后面的值是容器中的目录。

  • 查看容器位置

在manager节点上查看运行容器的各个位置:

[root@centos-7 Desktop]# docker service ps wordpress 
ID                  NAME                IMAGE               NODE                    DESIRED STATE       CURRENT STATE            ERROR    PORTS
oglkrvgo154n        wordpress.1         wordpress:latest    localhost.localdomain   Running             Running 29 minutes ago  

然后去localhost.localdomain这个节点上查看这个容器的情况:

复制代码

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED        STATUS        PORTS       NAMES
4f36a273c8cc        wordpress:latest    "docker-entrypoint.s…"   4 minutes ago  Up 4 minutes  80/tcp   wordpress.1.oglkrvgo154nfvdgun1iqxopo
[root@localhost ~]# docker inspect 4f36a273c8cc #查看那这个容器
{
...
...
 "Mounts": [
            {
                "Type": "volume",
                "Name": "0cc097b7436dc91ecde52d98169bb1f6f160c158b52f0fc66f336d2e72aa8995",
                "Source": "/var/lib/docker/volumes/0cc097b7436dc91ecde52d98169bb1f6f160c158b52f0fc66f336d2e72aa8995/_data",
                "Destination": "/var/www/html",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
...
...

}

复制代码

内容很多,但是只需要关注上面这个就可以了,然后我们在本地进入到/var/lib/docker/volumes/0cc097b7436dc91ecde52d98169bb1f6f160c158b52f0fc66f336d2e72aa8995/_data这个目录中:

[root@localhost ~]# cd /var/lib/docker/volumes/0cc097b7436dc91ecde52d98169bb1f6f160c158b52f0fc66f336d2e72aa8995/_data
[root@localhost _data]# ls
index.php    wp-activate.php     wp-comments-post.php  wp-content   wp-links-opml.php  wp-mail.php      wp-trackback.php
license.txt  wp-admin            wp-config.php         wp-cron.php  wp-load.php        wp-settings.php  xmlrpc.php
readme.html  wp-blog-header.php  wp-config-sample.php  wp-includes  wp-login.php       wp-signup.php

这就是该容器中的文件,我们需要修改wp-config.php这个文件中的内容。

复制代码

/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress');

/** MySQL database username */
define( 'DB_USER', 'root');

/** MySQL database password */
define( 'DB_PASSWORD', '');    #将这个密码设置上就ok了

/** MySQL hostname */
define( 'DB_HOST', 'mysql');

/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '');

复制代码

其实只需要改动上面数据库密码处,将密码天成你数据库的密码就可以了。

 

参考:https://www.cnblogs.com/shenjianping/p/12268190.html

www.mihaoyun.com

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值