首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker-组合wordpress mysql连接被拒绝

docker-组合wordpress mysql连接被拒绝
EN

Stack Overflow用户
提问于 2015-12-03 14:33:55
回答 7查看 42.6K关注 0票数 28

我已经创建了一个小的docker-compose.yml,它曾经像部署小型WordPress实例的魅力一样工作。看起来是这样的:

代码语言:javascript
复制
wordpress:
  image: wordpress:latest
  links:
   - mysql
  ports:
   - "1234:80"
  environment:
    WORDPRESS_DB_USER: wordpress
    WORDPRESS_DB_NAME: wordpress
    WORDPRESS_DB_PASSWORD: "password"
    WORDPRESS_DB_HOST: mariadb
    MYSQL_PORT_3306_TCP: 3306
  volumes:
    - /srv/wordpress/:/var/www/html/
mysql:
  image: mariadb:latest
  mem_limit: 256m
  container_name: mariadb
  environment:
    MYSQL_ROOT_PASSWORD: "password"
    MYSQL_DATABASE: wordpress
    MYSQL_USER: wordpress
    MYSQL_PASSWORD: "password"
  volumes:
    - /srv/mariadb:/var/lib/mysql

但是当我现在启动它时(可能因为docker更新到Docker版本1.9.1,构建a34a1d5),它就失败了。

代码语言:javascript
复制
wordpress_1 | Warning: mysqli::mysqli(): (HY000/2002): Connection    refused in - on line 10
wordpress_1 | 
wordpress_1 | MySQL Connection Error: (2002) Connection refused

当我cat /etc/hosts of wordpress_1时,有MySQL的条目:

代码语言:javascript
复制
172.17.0.10 mysql 12a564fdbc56 mariadb

并且我能够平平MariaDB服务器。

当我docker-compose up时,安装了WordPress,并在几次重新启动MariaDB容器之后打印:

代码语言:javascript
复制
Version: '10.0.22-MariaDB-1~jessie'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution

哪个笨蛋应该表明它在运行,不是吗?

如何使WordPress能够连接到MariaDB容器?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-12-06 18:32:39

这种行为的原因可能与最近的内核和坞更新有关。我在其他对接组合设置中发现了其他几个连接问题。因此,我重新启动了服务器(不仅仅是码头服务),此后就没有出现过类似的问题。

票数 10
EN

Stack Overflow用户

发布于 2016-11-14 13:55:43

要解决这个问题,首先要做的是:

将以下代码添加到wordpress &数据库容器中(在docker文件中):

代码语言:javascript
复制
restart: unless-stopped

这将确保在wordpress容器试图连接到数据库之前启动数据库并将其初始化。然后重新启动对接引擎

代码语言:javascript
复制
sudo restart docker

或(用于ubuntu 15+)

代码语言:javascript
复制
sudo service docker restart 

这里是我使用的完整配置,可以用MariaDB设置wordpress:

代码语言:javascript
复制
version: '2'

services:
  wordpress:
    image: wordpress:latest
    links:
      - database:mariadb
    environment:
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_NAME=mydbname
      - WORDPRESS_TABLE_PREFIX=ab_
      - WORDPRESS_DB_PASSWORD=password
      - WORDPRESS_DB_HOST=mariadb
      - MYSQL_PORT_3306_TCP=3306
    restart: unless-stopped
    ports:
      - "test.dev:80:80"
    working_dir: /var/www/html
    volumes:
     - ./wordpress/:/var/www/html/
  database:
   image: mariadb:latest
   environment:
     - MYSQL_ROOT_PASSWORD=password
     - MYSQL_DATABASE=mydbname
     - MYSQL_USER=wordpress
     - MYSQL_PASSWORD=password
   restart: unless-stopped
   ports:
     - "3306:3306"
票数 11
EN

Stack Overflow用户

发布于 2018-08-01 04:45:45

我也遇到了同样的问题,但只要重新启动Wordpress容器,我就得救了:

代码语言:javascript
复制
$ docker restart wordpress

我希望这对很多人都有帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34068671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档