首页
学习
活动
专区
圈层
工具
发布

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

本文提要 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过Dockerfile...搭建步骤 1、首先创建Dckerfile: FROM mysql:5.7 #设置免密登录 ENV MYSQL_ALLOW_EMPTY_PASSWORD yes #将所需文件放到容器中 COPY setup.sh...表示当前目录,即Dockerfile文件所在的目录,创建过程如下: ? 执行docker images查看该镜像是否存在于镜像列表中: ? 创建成功。...前文中创建了docker_mysql数据库,并在此数据库中创建了user表,同时将数据库的连接授权赋予了新建的docker用户,因此验证过程为: 使用docker用户登录数据库:mysql -u docker...-p 输入密码123456通过登录验证 切换至docker_mysql数据库:use docker_mysql; 查看数据库中的表:show tables; 查看表中的数据:select * from

5.5K70

创建MySQL数据表的SQL通用语法

MySQL 创建数据表 创建MySQL数据表需要以下信息: 表名 表字段名 定义每个表字段 语法 以下为创建MySQL数据表的SQL通用语法: CREATE TABLE table_name (column_name...column_type); 以下例子中我们将在 CodingDict 数据库中创建数据表CodingDict_tbl: tutorials_tbl( tutorial_id INT NOT NULL...通过命令提示符创建表 通过 mysql> 命令窗口可以很简单的创建MySQL数据表。你可以使用 SQL 语句 CREATE TABLE 来创建数据表。...使用PHP脚本创建数据表 你可以使用PHP的 mysql_query() 函数来创建已存在数据库的数据表。 该函数有两个参数,在执行成功时返回 TRUE,否则返回 FALSE。...$retval ) { die('数据表创建失败: ' . mysql_error()); } echo "数据表创建成功\n"; mysql_close($conn); ?

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

    docker学习(5) 在mac中创建mysql docker容器

    ,但根据其参考文档在mac上尝试了数次,将mysql数据库文件存储在mac本机时,启动总是报错,大意是docker容器运行时,容器的当前用户mysql,由于权限不足无法mac本机上创建文件,stackoverflow...上有人解决了这个问题,参考其解决方法,重新整理了下Dockerfile文件,内容如下(主要是增加了vim的安装,以方便直接在容器内修改mysql配置文件): FROM mysql:latest MAINTAINER...-p /var/run/mysqld RUN chmod -R 777 /var/run/mysqld 将上面这段保存成名为"Dockerfile"的文件,然后在当前目录下,输入: docker build...build完成后,可用docker images ls确认下是否在本机生成了名为yjmyzz/mysql-osx的镜像,接着就可以创建mysql容器了,示例如下: docker run -d -h mysql...(创建前要注意该目录必须为空,且必须是当前登录用户~/下,且要有读写权限) -p 后面的部分为端口映射 MYSQL_ROOT_PASSWORD=123456为root账号的密码 mac上连接验证: mysql

    4K80

    mysql创建临时表,将查询结果插入已有表中

    我记得学数据库理论课老师说可以创建临时表,不知道mysql有没有这样的功能呢?临时表在内存之中,读取速度应该比视图快一些。然后还需要将查询的结果存储到临时表中。...下面是创建临时表以及插入数据的例子,以供大家参考。...A、临时表再断开于mysql的连接后系统会自动删除临时表中的数据,但是这只限于用下面语句建立的表: 1)定义字段   CREATE TEMPORARY TABLE tmp_table (      ...2)直接将查询结果导入临时表   CREATE TEMPORARY TABLE tmp_table SELECT * FROM table_name B、另外mysql也允许你在内存中直接创建临时表,...1、可以使用A中第二个方法 2、使用insert into temtable (select a,b,c,d from tablea)”;

    13.9K50

    Docker 中创建 mysql 容器,并设置远程连接

    背景 Docker 中创建 mysql 容器 1.创建MySQL容器 docker run -di --name mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD...=123456 mysql -p 代表端口映射,格式为 宿主机映射端口:容器运行端口 -e 代表添加环境变量 MYSQL_ROOT_PASSWORD是root用户的登陆密码 可能遇到的问题 这个时候使用客户端连接工具连接的话...设置远程登录 2.1 进入MySQL容器,登陆MySQL docker exec -it mysql /bin/bash 2.2 登陆mysql** mysql -u root -p 2.3 输入密码...进行授权远程连接授权 GRANT ALL ON *.* TO 'root'@'%'; 刷新权限 flush privileges 注意,这时还不能远程访问 因为Navicat只支持旧版本的加密,需要更改mysql...localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 更新root用户密码 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password

    13.4K20

    【转】在 SQL Server 中创建日期维度(日历表)

    在本文中,我们将引导您在 SQL Server 中创建日期维度表,该表将跨越 30 年,从 2010 年 1 月 1 日到 2039 年 12 月 31 日。...5 完成日期维度表在本节中,我们将通过添加更多高级功能来进一步增强表格,例如识别周末、计算每月的第一天和最后一天以及创建对报告有用的日期格式。...结论在本文中,我们介绍了如何在 SQL Server 中创建健壮的日期维度表。...从使用递归 CTE 或 GENERATE_SERIES 函数(在 SQL Server 2022+ 中)生成日期范围,到添加有用的元数据(如日期名称、会计年度调整),我们创建了一个可用于实际报告和分析场景的表...无论您是处理日历数据、财务数据还是基于日期的自定义报表,此日期维度表都将作为 SQL Server 环境中的宝贵资源。

    8.1K10

    docker mysql 容器中执行mysql脚本文件并解决乱码

    docker 容器中执行mysql脚本文件并解决乱码 网上搜索了一大推,在容器mysql中执行一段代码这么难吗?搞得十分复杂。 于是自己记录一下,虽然简单,但是还是怕后面忘记掉,又搜大半天。...现在的需求是将我的sql文件导入进来,然后让docker中的mysql 来执行它。...注意mysql在docker容器中,如果你只导入到宿主机,然后进入容器去执行sql文件的话,一定会告诉你是打不开的,因为宿主机外部和容器内部是相对隔离的,不可能在容器内部去找宿主机的路径。...我把sql文件放置到了这里,这里是我曾经做的和docker sql文件挂载的普通目录,当然,你现在放在哪里都行。 要拷贝到容器内部的话,就需要先找到容器。...docker cp /mysql/mysql/1.sql 4f50fbeb15ee:/home/1.sql cp后面是你宿主机sql文件所在的路径,容器id后面一个是容器home文件夹,一个是我拷贝后命名的

    3.3K30

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

    在用docker创建mysql容器的时,有时候我们期望容器启动后数据库和表已经自动建好,初始化数据也已自动录入,也就是说容器启动后我们就能直接连上容器中的数据库,使用其中的数据了。...搞清楚原理了,现在我们来实践一次吧: 在docker上搭建disconf环境时,需要搭建mysql数据库,并且要依次执行四个sql文件分别对数据库,表,数据做初始化,我们有两种做法: 1....将四个sql文件复制到/docker-entrypoint-initdb.d目录下,这样容器run的时候的时候就会自动执行这四个sql,但是从截图的脚本上来看,对多个文件中的执行顺序是不能指定的,如果创建数据库的脚本晚于创建表的脚本执行...,那么就会导致建表失败,所以这种复制sql的方式不能满足我们的需要(不过,如果将四个文件按照顺序合成一个sql就能满足要求了); 2....init_table.sql,1-init_data.sql,20151225.sql,20160701.sql这四个文件就是我们要执行的sql,在构造docker镜像的时候被复制到镜像文件中了; 完整内容请

    4.4K71

    MySQL中存放文件的策略与表设计实践

    在这篇文章中,我们将探讨如何在MySQL数据库中设计一个表来存储文件,并分析这种方案的优缺点。 1....为了方便管理,我们通常还会在表中包含一些其他字段,如文件名、文件类型、文件大小和上传时间等。 2....id字段是表的主键,用于唯一标识每个文件。...最佳实践 虽然将文件存储在MySQL中是可行的,但通常我们推荐将文件存储在文件系统或对象存储服务(如Amazon S3或阿里云OSS)中,并在数据库中存储文件的元数据和路径。...通过对比不同的方案和了解其优缺点,我们可以为自己的项目选择最合适的文件存储解决方案。在MySQL中存储文件是一个可选方案,但要谨慎考虑其可能带来的性能和存储限制问题。

    3.2K60

    Docker 中,对 mysql 配置文件的修改操作

    背景 前面,我进行了 Replication 以及 PXC 集群的配置操作 但是发现,实际工作中 一定会对 mysql 的配置参数进行修改的 比如:max_connections 但是,你会发现...,docker 因为是虚拟环境的原因 我们不能直接在 Linux 中进行配置文件的查找 如果,有时间 强烈建议,学习一下 Docker 操作技巧 毕竟我也是接触中遇到问题才会找途径解决 在此...确定 Docker 内 MySQL 文件相关路径 执行命令: mysql --help | grep my.cnf root@40d2ee3ceac9:/# mysql --help | grep my.cnf...进入要修改的文件目录 cd /etc/mysql ⑤. 安装 vim 工具(docker 默认环境没有安装) apt-get update apt-get install vim ⑥....修改 my.cnf 配置文件,并保存 vi my.cnf ⑦.

    7.9K30
    领券