我是Docker的新手 - 但我正在尝试设置一个本地测试环境来播放一些wordpress。
所以我去了docker站点并提取了一个默认的docker .yml文件,了解如何轻松实现它。
我做了一些改动,但大多数情况下这是一个直接的文件。
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql2
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: somerootwordpresspw
MYSQL_DATABASE: testdatabase
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
volumes:
- ./WP-TEST/:/var/www/html/
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
当我使用上面的.yml文件运行docker-compose up
时,我看到了这个错误:
MySQL "CREATE DATABASE" Error: Access denied for user 'wordpress'@'%' to database 'wordpress'
我觉得很奇怪,因为我正在命名数据库testdatabase
,为什么要尝试创建一个名为wordpress的数据库呢?
当我与SQL Pro连接时,我可以看到testdatabase
,但根据控制台,它尝试创建wordpress
db。
如何让它连接到我的指定数据库,而不是经常无法创建wordpress
?
答案 0 :(得分:2)
所以我想我明白了。
真的简单。在我的.yml文件的wordpress部分,我需要包含WP_DB_NAME: testdatabase
通过这样做,它使用我的命名testdatabase来安装wordpress。
希望这有助于那些可能偶然发现这一点的人。
现在.yml文件看起来像这样:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql2
restart: always
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: somerootwordpresspw
MYSQL_DATABASE: testdatabase
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
volumes:
- ./WP-TEST/:/var/www/html/
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: testdatabase
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data: