当前位置: 首页 > 知识库问答 >
问题:

使用数据库和表对MySQL进行Dockerize

宋瀚海
2023-03-14

我想从Dockerfile创建一个具有初始数据库及其表的MySQL容器。

我还有一个特定的etc/mysql/mysql。conf.d/mysqld。cnf文件(我可以在Dockerfile中简单地使用添加指令。)

我希望Dockerfile创建一个MySQL映像,其中包含一个名为DBNAME的数据库,并包含以下表格:

CREATE TABLE utente (
     ID int  NOT NULL AUTO_INCREMENT,
     nome VARCHAR(255),
     cognome VARCHAR(255),
     username VARCHAR(255),
     password VARCHAR(255),
     PRIMARY KEY (ID)
);

CREATE TABLE sdplines (
    ID int NOT NULL AUTO_INCREMENT,
    value VARCHAR(255),
    session_id VARCHAR(255),
    u_id int,
    PRIMARY KEY (ID),
    FOREIGN KEY (u_id) REFERENCES utente(ID)
);

我已经在这里寻找解决问题的方法,但没有找到解决方法。

共有2个答案

蓟和煦
2023-03-14

如果您使用dockerfile-然后添加以下内容

ADD schema.sql /docker-entrypoint-initdb.d

或者如果您使用docker compse

volumes:
 - ./SQL:/docker-entrypoint-initdb.d

在我的例子中,最后一个有一个名为SQL的目录,其中包含脚本。

乜坚成
2023-03-14

复制您的<代码>。docker入口点initdb中的sql文件。d目录。

.sql文件:

CREATE DATABASE  IF NOT EXISTS `your_db_name`
...

Dockerfile文件:

FROM mysql:5.7.17

MAINTAINER ...

ENV MYSQL_ROOT_PASSWORD=...
ENV MYSQL_DATABASE=your_db_name   

COPY your_file.sql /docker-entrypoint-initdb.d/

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["mysqld"]

参考号:https://hub.docker.com/_/mysql/,“初始化新实例”部分:

第一次启动容器时,将创建一个具有指定名称的新数据库,并使用提供的配置变量进行初始化。此外,它将执行扩展名为的文件。上海。sql和。sql。在docker entrypoint initdb中找到的gz。d

 类似资料:
  • 如何使用MySQL Workbench进行数据库备份?我们可以用以下方式备份吗- < li >备份文件(。sql)包含Create Table语句和Insert into Table语句 < li >备份文件(。sql)只包含Create Table语句,不包含针对所有表的Insert into Table语句 < li >备份文件(。sql)只包含Insert into Table语句,不包含针

  • 问题内容: 我以前从未将golang与mysql一起使用,因此我是 第一次阅读这些内容。我想做这样的事情: 这种输入太多了,尤其是当我想 将更多变量添加到WHERE条件中时。 如果这是PHP,我将执行以下操作: 通过使用foreach循环,我可以动态生成查询并根据需要动态绑定尽可能多的变量。 像golang和mysql这样的选项吗?还是有其他选择不对查询输入每个变量组合? 问题答案: 如果您的地图

  • 目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。 MySQL驱动 Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种: https://github.com/go-sql-driver/mysq

  • 问题内容: 我有以下表格(为简单起见,省略了其他表格)。1适用于所有人,2适用于这些人从事的运动。我正在使用php允许用户查看人员列表。他们可以按人的名字或参加的体育活动进行过滤。因此,我希望能够看到所有参加比赛的人,例如棒球和足球。 基本上,我的问题是,如何使用people_to_sports获得所有参加运动1和运动2的人的列表? 我在这里有一个sqlfiddle 。 谢谢! 问题答案:

  • 问题内容: 使用REST接口公开MySQL数据库的最简单方法是什么? 我可以在Internet上找到的唯一指南只是使用NetBeans。我不是NetBeans的忠实拥护者… 我想检索该数据,并能够使用此REST接口更新数据库上的数据。 仅供参考,这是针对我当前正在使用的iPhone应用程序。 问题答案: 正如dorkitude所评论的那样,这取决于您可以使用/想要使用哪种语言。 我找到了项目PHP

  • 我正在用Cucumber编写验收测试,我想使用H2数据库进行测试。 应用程序测试属性如下所示: 在目录resources/db/migration中,我有一个包含这些脚本的sql文件: 但是当我运行测试时,H2用默认格式创建模式,而不是使用脚本: 如您所见,所有VARCHAR都是使用255大小创建的,而不是真实值。 你能帮我把飞行道和H2整合起来吗? 谢谢!