Docker wordpress / mysql失败,并显示“连接被拒绝”。 [英] Docker wordpress/mysql fails with "connection refused"
问题描述
我正在尝试设置环境来构建wordpress网站,但docker-compose失败,并重新建立了连接。
I am trying to setup my environment to build a wordpress site but docker-compose fails with connection refuded.
我发送了2天多的时间试图弄清楚,但浏览网页却徒然。我尝试了栈溢出可用的解决方案,但仍然徒劳。
I sent more than 2 days trying to figure out, browsing the web but in vain. I tried solutions available on stack overflow, still in vain.
这是我的docker-compose
This is my my docker-compose
version: '3.7'
services:
wordpress:
depends_on:
- db
image: wordpress
container_name: wp-web
ports:
- 7000:80
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: banana
WORDPRESS_DB_PASSWORD: banana
WORDPRESS_DB_NAME: banana
working_dir: /var/www/html
volumes:
- ./wp-content:/var/www/html/wp-content
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
db:
image: mysql:5.7
container_name: db_server
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./db_data:/home/abelmbula/Documents/dockerapp/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: banana
MYSQL_DATABASE: banana
MYSQL_USER: banana
MYSQL_PASSWORD: banana
ports:
- 8889:3306
volumes:
db_data:
我把这个放出来
Starting db_server ... done
Recreating wp-web ... done
Attaching to db_server, wp-web
db_server | Initializing database
db_server | 2019-06-14T13:32:53.477264Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_server | 2019-06-14T13:32:53.479113Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
db_server | 2019-06-14T13:32:53.479146Z 0 [ERROR] Aborting
db_server |
wp-web | [14-Jun-2019 13:33:03 UTC] PHP Warning: mysqli::__construct(): (HY000/2002): Connection refused in Standard input code on line 22
wp-web |
wp-web | MySQL Connection Error: (2002) Connection refused
db_server exited with code 1
我的文件有问题吗?
推荐答案
这是一个最小的示例:
version: '3.7'
services:
wordpress:
depends_on:
- mysql
image: wordpress
container_name: wordpress
hostname: wordpress
domainname: example.com
ports:
- 8080:80
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_USER: banana
WORDPRESS_DB_PASSWORD: banana
WORDPRESS_DB_NAME: banana
working_dir: /var/www/html
volumes:
- wp_content:/var/www/html/wp-content
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
mysql:
image: mysql:5.7
container_name: mysql
hostname: mysql
domainname: example.com
command: --default-authentication-plugin=mysql_native_password
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: banana
MYSQL_DATABASE: banana
MYSQL_USER: banana
MYSQL_PASSWORD: banana
expose:
- 3306
volumes:
db_data:
wp_content:
本示例使用<$ c $在卷
中定义的c> db_data 卷以存储数据库文件(默认情况下为 docker
卷存在于主机操作系统上的 / var / lib / docker / volumes
中),它添加了一个名为 docker卷
对于 wordpress
内容,它不会将数据库端口发布到主机,而是将其公开到 docker
网络内部,因此 wordpress
服务可以访问它并设置示例 hostname
和 domain服务的名称
。
This example uses the db_data
volume defined in the volumes
to store the database files (by default docker
volumes exist in /var/lib/docker/volumes
on the host operating system), it adds a named docker volume
for the wordpress
content, it does not publish the database port to the host rather it exposes it inside the docker
network so that the wordpress
service can access it and it sets example hostname
and domainname
entries for the services.
这篇关于Docker wordpress / mysql失败,并显示“连接被拒绝”。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!