【问题标题】:Multiple MariaDB databases in DockerDocker 中的多个 MariaDB 数据库
【发布时间】:2018-10-14 20:16:57
【问题描述】:

使用 Docker (v.2) 我在docker-compose.yml 中设置了一个数据库:

mysql:
    image: mariadb:latest
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 'test'
      MYSQL_DATABASE: 'test'
      MYSQL_USER: 'test'
      MYSQL_PASSWORD: 'test'

这很好用。我需要做什么才能在同一个容器中创建另一个数据库?

【问题讨论】:

  • 你能解释更多关于另一个容器的信息吗?它是 MariaDB 的另一个实例吗?或者您想托管另一个数据库,例如 Moongo DB?
  • 在 MySQL 中,单个 mysqld 实例支持多个数据库——它们共享公共资源,例如连接端口和身份验证定义(但可能具有不同的权限)。您只想要一个运行多个数据库的实例还是想要多个实例?
  • 听起来我想要一个运行多个数据库的单个实例。
  • @GluePear 您介意从我的回答中删除 Accepted 标签吗?它没有回答你的问题,我想删除它。堆栈不允许删除已接受的答案。

标签: mysql docker mariadb


【解决方案1】:

我了解到您想在同一个容器中创建两个数据库,对吧?我认为这违背了微服务架构原则。

无论如何,我认为在初始化新实例时这是可能的:

第一次启动容器时,将创建一个具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它将执行 /docker-entrypoint-initdb.d 中的扩展名为 .sh、.sql 和 .sql.gz 的文件。文件将按字母顺序执行。

更新mariadb/mysql目录下的文件link

DROP USER IF EXISTS 'MYSQL_USER';
CREATE USER 'MYSQL_USER'@'%';
CREATE DATABASE IF NOT EXISTS MYSQL_DATABASE;
GRANT ALL ON MYSQL_DATABASE.* TO 'MYSQL_USER'@'%' IDENTIFIED BY 'MYSQL_PASSWORD';
 --------------your new NewDB----------------------
CREATE DATABASE IF NOT EXISTS NewDB;
GRANT ALL ON NewDB.* TO 'MYSQL_USER'@'%' IDENTIFIED BY 'MYSQL_PASSWORD';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 2019-01-01
    相关资源
    最近更新 更多