首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头-更改码头枢纽值不起作用?

码头-更改码头枢纽值不起作用?
EN

Stack Overflow用户
提问于 2020-01-11 15:53:00
回答 1查看 111关注 0票数 1

这看起来很简单,但老实说我找不到错误,我确信这是很简单的事情。

我这里有我的写作档案:

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

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     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
       WORDPRESS_DB_NAME: wordpress
volumes:
    db_data: {}

只是直接从码头枢纽。但是如果我试图填写我自己的数据,例如,我们把它称为"awordpress“,而不是数据库名"wordpress”。然后整件事就停止了,但为什么?

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

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: awordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     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
       WORDPRESS_DB_NAME: awordpress
volumes:
    db_data: {}

组成输出:

代码语言:javascript
复制
wordpress_1  | Complete! WordPress has been successfully copied to /var/www/html
wordpress_1  |
wordpress_1  | MySQL "CREATE DATABASE" Error: Access denied for user 'wordpress'@'%' to database 'awordpress'
wordpress_1  |
wordpress_1  | WARNING: unable to establish a database connection to 'db:3306'
wordpress_1  |   continuing anyways (which might have unexpected results)

奇怪的是,它通过环境变量创建了一个数据库"wordpress“,而不是我插入的"awordpress”。为什么它要“忽略”我的变量而创建这个值呢?

代码语言:javascript
复制
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)

目标是用我自己的数据自动配置wordpress。我肯定这是非常简单的事情.抱歉,如果这是个愚蠢的问题。我对码头很陌生。提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-11 16:20:50

mysql映像在一个空的数据目录上启动时,它将从环境变量初始化它自己。

来自dockerhub上的mysql图像文档页面 (搜索“环境变量”)

请注意,如果您使用已经包含数据库的数据目录启动容器,下面的变量都不会产生任何影响:在容器启动时,任何预先存在的数据库都将始终保持不变。

因此,如果在第一次运行后更改默认数据库的名称,那么db_data卷将包含一个初始化的mysql数据文件系统,并且不会创建这个新数据库。

你有两个选择:

  1. 在现有数据安装中手动创建/重命名数据库
  2. 从零开始重新启动,让图像在一个新的空白卷上完成初始化工作。

这是相当容易做的第二个选择与码头组成。警告:以下内容将删除以前的任何数据

首先,停止所有组合服务,删除它们相关的停靠卷:

代码语言:javascript
复制
docker-compose down -v

然后重新启动一切,重新创建所有需要的卷。

代码语言:javascript
复制
docker-compose up -d
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59695992

复制
相关文章

相似问题

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