CentOS中使用Dockerfile部署初始化sql文件的mysql
场景
Docker中部署mysql数据库:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99213563
CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119849922
在上面部署Mysql镜像和会使用Dockerfile的基础上。
如果要实现定制化一个mysql镜像,使容器运行起来就会有数据。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
1、新建文件
在服务器上某路径下新建文件夹mysqldockerfile,在此文件夹下新建或者上传如下四个文件
2、编辑utf8mb4.cnf数据字符编码文件
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
default-time_zone = '+8:00'
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
3、编辑脚本文件install_data.sh
#!/bin/bash
mysql -uroot -p$MYSQL_ROOT_PASSWORD <<EOF
source $WORK_PATH/$FILE_0;
4、编辑Dockerfile文件
FROM mysql:5.7
ENV WORK_PATH /usr/local/work
ENV AUTO_RUN_DIR /docker-entrypoint-initdb.dENV FILE_0 init.sql
ENV INSTALL_DATA_SHELL install_data.shRUN mkdir -p $WORK_PATH
COPY utf8mb4.cnf /etc/mysql/conf.d/utf8mb4.cnf
COPY ./$FILE_0 $WORK_PATH/
COPY ./$INSTALL_DATA_SHELL $AUTO_RUN_DIR/
EXPOSE 3306
RUN chmod a+x $AUTO_RUN_DIR/$INSTALL_DATA_SHELL
5、最后init.sql是数据库sql文件
set character set utf8;
drop database if exists badao;
CREATE DATABASE badao DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT all ON badao.* TO 'root'@'%';
use badao;-- ----------------------------
-- 1、部门表
-- ----------------------------
drop table if exists sys_dept;
create table sys_dept (dept_id bigint(20) not null auto_increment comment '部门id',parent_id bigint(20) default 0 comment '父部门id',ancestors varchar(50) default '' comment '祖级列表',dept_name varchar(30) default '' comment '部门名称',order_num int(4) default 0 comment '显示顺序',leader varchar(20) default null comment '负责人',phone varchar(11) default null comment '联系电话',email varchar(50) default null comment '邮箱',status char(1) default '0' comment '部门状态(0正常 1停用)',del_flag char(1) default '0' comment '删除标志(0代表存在 2代表删除)',create_by varchar(64) default '' comment '创建者',create_time datetime comment '创建时间',update_by varchar(64) default '' comment '更新者',update_time datetime comment '更新时间',primary key (dept_id)
) engine=innodb auto_increment=200 comment = '部门表';-- ----------------------------
-- 初始化-部门表数据
-- ----------------------------
set character set utf8;
insert into sys_dept values(100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(102, 100, '0,100', '长沙分公司', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(103, 101, '0,100,101', '研发部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(104, 101, '0,100,101', '市场部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(105, 101, '0,100,101', '测试部门', 3, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(106, 101, '0,100,101', '财务部门', 4, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(107, 101, '0,100,101', '运维部门', 5, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(108, 102, '0,100,102', '市场部门', 1, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(109, 102, '0,100,102', '财务部门', 2, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null);
要注意这里的设置编码的地方
set names utf8;
set character set utf8;
drop database if exists badao;
CREATE DATABASE badao DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
判断是否已经存在数据库,存在则删除掉,然后授予root权限。
最后删除创建表,然后插入表数据时要注意,避免出现中文乱码问题,在插入数据前要添加
set character set utf8;
比如:
-- ----------------------------
-- 初始化-部门表数据
-- ----------------------------
set character set utf8;
insert into sys_dept values(100, 0, '0', '若依科技', 0, '若依', '15888888888', '123qq.com', '0', '0', 'admin', sysdate(), '', null);
insert into sys_dept values(101, 100, '0,100', '深圳总公司', 1, '若依', '15888888888', '123qq.com', '0', '0', 'admin', sysdate(), '', null);
6、构建镜像
docker build -t mysqlwithdata .
注意后面有个点,代表Dockerfile在当前目录
7、运行容器
docker run -itd --name mysqlwithdata -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysqlwithdata
8、运行成功后查看运行中的容器
docker ps
9、此时访问数据库应该已经带数据了
如果没有数据,可以查看日志
docker logs -f mysqlwithdata
如果要修改脚本或者配置文件等需要重新执行该过程,需要
停掉容器
docker stop mysqlwithdata
删除掉容器
docker rm mysqlwithdata
删除掉镜像
docker rmi mysqlwithdata:latest
然后修改后重新执行上面的过程。
CentOS中使用Dockerfile部署初始化sql文件的mysql相关推荐
- CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包
场景 CentOS7中使用Dockerfile部署后台jar包: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119818808 ...
- 浅谈在centos中使用docker部署war包项目(jsp篇)
在centos中使用docker部署war包项目(jsp篇) 一.环境的准备 二.Docker优点 1.简化程序 2.避免选择恐惧症 3.节省开支 三.Docker结构 1.Client( Doc ...
- 使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案
使用命令导入sql文件到mysql数据库时报Failed to open file错误的解决方案 参考文章: (1)使用命令导入sql文件到mysql数据库时报Failed to open file错 ...
- CentOS7中使用Dockerfile部署后台jar包
场景 使用Dockerfile定制镜像来部署Tomcat项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99105626 在 ...
- 数据库学习day_02:表格相关sql语句 / 表格数据相关sql语句 / sql中的数据类型 / 导入外部sql文件 / 去重.是否为null.and与or.in.[x,y]
1.表相关的SQL语句 操作表相关的SQL 必须先使用某个数据库 create database mydb1; show create database mydb1; use mydb1; 如果默认不 ...
- oracle中导出的sql文件转入mysql中的工作记录
因为工作需要需要将oracle 中导出来的sql文件导入到mysql中.首先要解决的就是oracle的安装,这里我安装的是oracle12c.转换的软件用的是navicat permium.1.将获取 ...
- Mysql中使用命令行导入.sql文件新建数据库表(图文)
1.首先需要在Mysql命令行中先建好数据库,比如新建一个名字为"weibo2"的数据库: create database weibo2; 2.之后在命令行中输入:use weib ...
- mysql run sql files_如何在Eclipse DTP中運行多個.sql文件
Part I As far as I know the developers of Eclipse DTP have not yet implemented a command line SQL ex ...
- 在mysql中加载并执行sql文件
1.运行xampp 2.运行apache+mysql 3.浏览器中输入:http://localhost:8000/phpmyadmin/ 4.左侧"新建"按钮",输入& ...
最新文章
- 29岁,从不学无术到技术Leader:这几个学习资源,决定你5年后的技术提升!
- 在配置文件(.settings、.config)中存储自定义对象
- 基于Xml 的IOC 容器-准备文档对象
- win2008修改远程端口
- Word2Vec教程-Skip-Gram模型
- 男子趁前女友熟睡翻开眼皮,刷脸转走15万!支付宝:几率很小
- CentOS配置服务开机自启
- Bugku 杂项刷题日常1--21:
- 电子器件系列二十一:混频器
- 类似吾爱破解论坛的网站有哪些?破解软件网站合集推荐
- OWASP A6 Vulnerable and Outdated Components (自带缺陷和过时的组件)
- Vue+Vant制作单选全选全不选以及删除按钮van-checkbox
- 【COPOD】Suppressing Poisoning Attacks on Federated Learning for Medical Imaging
- TFS二次开发系列:八、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(二)
- 用计算机弹出草木,2011-06-06 2010~2011年北京市石景山区普通高中信息技术《信息技术基础》《人工智能初步》—笔试试题(定稿...
- bs84c12引脚_最新BS84B12A-3.pdf
- WPF中的树:LogicalTree、VisualTree
- 谈谈腾讯TT浏览器产品细节的不足
- 分享一个非常好用的录屏软件
- 论文笔记 【Wide Deep Learning for Recommender Systems】
热门文章
- Hamburger Steak 贪心-锅子问题-先求最小耗时再贪心
- 树莓派hdmi输出没声音_树莓派 4 开箱记
- php foreach方法,forEach方法怎么使用
- 一、MySQL日志与备份
- php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例
- python股票涨势_stock
- mysql的insert语法_mysql insert 语法
- mysql 员工工资上涨5%_工资从1万到3万,你还差mysql数据库优化之系列五
- centos selinux_如何临时或永久地禁用SELinux
- jupyter notebook妙用之%time