首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让docker中的mysql启动时自动执行sql

在用docker创建mysql容器的时,有时候我们期望容器启动后数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后我们就能直接连上容器中的数据库,使用其中的数据了。...其实mysql的官方镜像是支持这个能力的,在容器启动的时候自动执行指定的sql脚本或者shell脚本,我们一起来看看mysql官方镜像的Dockerfile,如下图: ?...将四个sql文件复制到/docker-entrypoint-initdb.d目录下,这样容器run的时候的时候就会自动执行这四个sql,但是从截图的脚本上来看,对多个文件中的执行顺序是不能指定的,如果创建数据库的脚本晚于创建表的脚本执行...ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d #定义sql文件名 ENV FILE_0 0-init_table.sql ENV FILE_1 1-init_data.sql.../$FILE_3 $WORK_PATH/ #把要执行的shell文件放到/docker-entrypoint-initdb.d/目录下,容器会自动执行这个shell COPY .

3.5K71

让docker中的mysql启动时自动执行sql文件

至于这么做的原因可以看一下这篇文章《将数据的初始化放到docker中的整个工作过程(问题记录)》,为了实现和docker-compose整合,试了很多种方法都没法实现需求,最终是通过这种方法才解决掉问题.../mysql/setup.sh COPY schema.sql /mysql/schema.sql COPY privileges.sql /mysql/privileges.sql #设置容器启动时执行的命令...3、需要导入数据的mysql脚本命令schema.sql: -- 创建数据库 create database `docker_mysql` default character set utf8 collate...表示当前目录,即Dockerfile文件所在的目录,创建过程如下: ? 执行docker images查看该镜像是否存在于镜像列表中: ? 创建成功。...-p 输入密码123456通过登录验证 切换至docker_mysql数据库:use docker_mysql; 查看数据库中的表:show tables; 查看表中的数据:select * from

4.3K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何让你的 SQL 执行的飞起?

    在心如止水的 SQL 编码师眼里,金钱跟粪土没区别,非说有什么一样的属性,那都是臭的。却始终被人看做拉数据的,呼来喝去。 算了,似乎吃饭时候说这事儿不好。...小 C 熟练的切换到执行计划的截图,她显然已经知道我对付慢查询的三板斧了。“现在的后生可畏啊,老师傅们快被他们榨干了”,当然我是不会这么对着她的面说的。 ? 最显著的地方是那么厚厚的一根线 ?...做 JS 的随便写段 SQL 去 10T 的数据库上跑跑就能找到挫败感了;而写 SQL 的你去写个 UI Chart, 头发掉不少。...有些程序员有严重的代码洁癖。看到长段的 SQL 总想着要去动手改一改,看到不按自己喜欢的代码格式写的 SQL 总想着去调调格式。...上面的 SQL 改写后,执行计划变得复杂了。我估计很多人蠢蠢欲动要改掉它。看着眼烦,往往是新手被自己情绪带着走的节奏。 ? 本故事纯属虚构,如有雷同纯属巧合

    52220

    【docker系列】使用docker compose启动postgresql

    要在启动 PostgreSQL 容器时执行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目录。...下面是如何修改 Docker Compose 配置文件,以便在启动时执行初始化 SQL 脚本: 创建初始化 SQL 脚本文件: 在项目中创建一个 SQL 文件,例如 init.sql,并将需要执行的 SQL...Compose 配置: 在 docker-compose.yml 文件中,添加 volumes 配置,将包含初始化 SQL 脚本的目录映射到 PostgreSQL 容器的 docker-entrypoint-initdb.d...启动 PostgreSQL 容器: 运行以下命令启动的 PostgreSQL 容器,并让它执行初始化 SQL 脚本: docker-compose up -d PostgreSQL 容器会启动,并自动执行...docker-entrypoint-initdb.d 目录下的 SQL 脚本文件。

    26510

    如何执行超过100M的SQL脚本?

    最近遇到一个问题,在SQL Server的查询分析器里面执行一个超过100MB的数据库脚本,发现老是报“引发类型为“System.OutOfMemoryException”的异常”,上网查了一下,主要是因为...osql 是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件! 如何使用 Osql?...获取更多视频教程,微信搜索【码农编程进阶笔记】 2、使用osql执行一个大脚本文件 将该工具指向一个脚本文件,步骤: 创建一个包含一批 Transact-SQL 语句的脚本文件(如 myfile.sql...例如,如果脚本文件 myfile.sql 在 C:\users文件夹中,请将参数 myfile 替换为 C:\users\myfile.sql。 该脚本文件的运行结果将出现在控制台窗口中。...总结 如果你觉得太麻烦了,可以使用批处理,将常用的一些命令写在bat文件中,需要的时候替换一些参数,点击文件执行即可!是不是比自己去写一个程序方便多呢???

    1.2K20

    SQL语句在MySQL中是如何执行的

    mysql> select * from T where ID=10; 开门见山,当我们输入一条 SQL 语句的时候,MySQL 内部究竟执行了什么?...修改完成后,只有再重新建立的连接才会使用到新的权限设置。 建立连接的过程通常是比较复杂的,所以我建议你在使用中要尽量减少建立连接的动作,也就是尽量使用长连接。...第二步:语法分析,主要就是判断你输入的 SQL 是否正确,是否符合 MySQL 的语法。,主要就是判断你输入的 SQL 是否正确,是否符合 MySQL 的语法。...优化器的作用就是它认为的最优的执行方案去执行(虽然有时候也不是最优),比如多个索引的时候该如何选择索引,多表查询的时候如何选择关联顺序等。...InnoDB 引擎把数据保存在内存中,同时记录 redo log,此时 redo log 进入 prepare 状态,然后告诉执行器,执行完成了,随时可以提交。

    4.4K20

    如何让SQL中的COUNT(*)飞起来

    今天就盘它 已知 SQL Server 中有这样张表 (其他数据库也适用): CREATE TABLE [dbo]....可以看到运行大约花了 3 秒时间 执行计划也简单,走了全表扫描 万能的性能杀-索引 我之前也分享过,数据是存在数据页上的。这个数据页可以看做是一页纸。在纸上把字写得越紧凑,得到的信息越多。...第一个提高性能的方案就出来了,建一个索引 CREATE INDEX IDX_USR_ITEM ON dbo.MobileLink(user_id,item_id) ; 执行计划如我所料,肯定走索引...SQL Server: 我还可以更快 还有更快的方法,列式索引。它的优点除了节省空间外,还外加压缩,双重优化。...列式索引的结构比较复杂,详细可见这篇(SQL Server Storage)。在这里提到列式索引,旨在分享,列式索引的存储和压缩优势。 对数据库各项特性了解越多,对待同一问题可用的方法也就越多。

    1.3K20

    如何在Mysql的Docker容器启动时初始化数据库

    前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行。那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案。...2.原理 当Mysql容器首次启动时,会在 /docker-entrypoint-initdb.d目录下扫描 .sh,.sql,.sql.gz类型的文件。...如果这些类型的文件存在,将执行它们来初始化一个数据库。这些文件会按照字母的顺序执行。.../sql /tmp/sql RUN mv /tmp/sql/*.sql /docker-entrypoint-initdb.d RUN rm -rf /tmp/sql 第一步,引入官方 Mysql:5.7...第五步,使用 mv 命令把第四步拷贝的文件夹下的所有.sql文件复制到 /docker-entrypoint-initdb.d下,这样才能利用2.章节的机制进行初始化数据库。

    3.2K10

    一条SQL语句在MySQL中如何执行的

    前两天发了一条SQL慢的原因有哪些,在那篇文章我没有说到优化器之类的,我觉得如果配合一条SQL是如何执行的,会更好,所以特地找了一篇。...来源:JavaGuide | 作者:木木匠 本篇文章会分析一个 sql 语句在 MySQL 中的执行流程,包括 sql 的查询在 MySQL 内部会怎么流转,sql 语句的更新是怎么完成的。...第二步,语法分析,主要就是判断你输入的 sql 是否正确,是否符合 MySQL 的语法。 完成这 2 步之后,MySQL 就准备开始执行了,但是如何执行,怎么执行是最好的结果呢?...二 语句分析 2.1 查询语句 说了以上这么多,那么究竟一条 sql 语句是如何执行的呢?其实我们的 sql 可以分为两种,一种是查询,一种是更新(增加,更新,删除)。...2.2 更新语句 以上就是一条查询 sql 的执行流程,那么接下来我们看看一条更新语句如何执行的呢?

    3.5K20

    在Docker环境中开发Java 8 Spring Boot应用程序

    本文我将向你展示如何在本地计算机上不安装Java 8环境的情况下使用Java 8来开发并运行一个简单的Spring Web应用程序。...Python开发人员可以借助虚拟环境为不同项目创建和管理独立的环境,每个项目都可以使用不同版本的Python来执行、存储和解决Python的依赖关系。然而Java和很多其他技术都不支持虚拟环境的概念。...最后,通过执行Maven命令来运行我的应用程序。...: # /docker-entrypoint-initdb.d 中的内容将在 mysqld 启动时被执行 ADD mysql/ /docker-entrypoint-initdb.d/ 此Dockerfile...在MySQL映像上,我将db-schema创建脚本放在MySQL文件夹中。我将用来创建“人”表的单个SQL文件data.sql放在此文件夹中。 现在,我们来看看此应用程序的结构。

    3.7K70

    JSW - 基于WEB的MSSQL数据库查询平台

    使用druid数据库连接池 数据库记录每次SQL执行脚本,并限制返回的结果数量 支持查询结果的csv格式导出 脚本输入框语法高亮,智能提醒 存储过程查看,表数据大小快速查看 项目部署 环境安装 本项目使用...vim init.sql # 启动数据库容器,把刚下载好的init.sql文件映射到容器里的docker-entrypoint-initdb.d目录下。为了启动容器自动创建我们需要的库和表。...参数MYSQL_ROOT_PASSWORD后为数据库root用户密码,请更换成更安全的 docker run --name jswdb -v /opt/java-sql-admin/script:/docker-entrypoint-initdb.d...首选我们看如何增加待管理的数据库服务器,选择服务器管理=>增加服务器。在弹层中添加你的服务器相关信息。 我们顺便给平台在增加一个用户。点击账号管理=>增加用户,在弹层内输入新用户的账号和密码即可。...如需要强制更新请清除浏览器缓存 右侧的SQL输入区支持SQL语法的快速补全,按下键盘的Ctrl键即可进行补全。还支持只执行选中的SQL语句 历史记录区域会按服务器进行区分,并缓存在浏览器本地。

    2.5K10

    一条SQL语句在MySQL中是如何执行的

    来源:http://t.cn/E6U9Z9T ---- 概览 本篇文章会分析下一个sql语句在mysql中的执行流程,包括sql的查询在mysql内部会怎么流转,sql语句的更新是怎么完成的。...第二步,语法分析,主要就是判断你输入的sql是否正确,是否符合mysql的语法。 完成这2步之后,mysql就准备开始执行了,但是如何执行,怎么执行是最好的结果呢?这个时候就需要优化器上场了。...优化器 优化器的作用就是它认为的最优的执行方案去执行(虽然有时候也不是最优),比如多个索引的时候该如何选择索引,多表查询的时候如何选择关联顺序等。...二、语句分析 2.1 查询语句 说了以上这么多,那么究竟一条sql语句是如何执行的呢?其实我们的sql可以分为2中,一种是查询,一种是更新(增加,更新,删除)。...进行权限校验,如果没有权限就会返回错误信息,如果有权限就会调用数据库引擎接口,返回引擎的执行结果。 2.2 更新语句 以上就是一条查询sql的执行流程,那么接下来我们看看一条更新语句如何执行的呢?

    2K20

    Rainbond 部署自动初始化Schema的数据库

    经常会遇到以下问题: 业务需要使用数据库,但部署完数据库后,需要在数据库中执行创建schema的操作或者一些初始化数据的创建。 开发测试多套部署环境,需要多次重复1的步骤。...如果我们把数据库也作为一个业务中的一个服务模块来管理的话,我们希望服务启动后即可直接完成Schema的初始化,直接提供数据服务能力。 那么在Rainbond中如何达成这样的效果呢?...此外,它将执行在 /docker-entrypoint-initdb.d 中找到的扩展名为 .sh,.sql 和 .sql.gz 的文件。 文件将按字母顺序执行。...Aaron #把sql文件拷贝到/docker-entrypoint-initdb.d/目录下,以便启动时自动执行这个sql COPY ..../sql/*.sql /docker-entrypoint-initdb.d #拷贝mysql配置文件 COPY .

    88100
    领券