docker 安装部署MySQL 5.7
拉取MySQL5.7镜像
1 | docker复制代码docker pull mysql:5.7 # 拉取 mysql 5.7 |
构建MySQL数据库容器
1 | MySQL复制代码docker run -d -e \ |
- –name:容器名,此处命名为mysql-5.7
- -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
- -d:后台运行容器,保证在退出终端后容器继续运行
- -v:主机和容器的目录映射关系,”:”前为主机目录,之后为容器目录
- 注意:这里需要关注/etc/localtime这个文件目录的映射,docker容器中的时间使用的是“标准时间”,与“北京时间”相差8小时,这里解决办法有很多,这只是其中的一种解决办法,能保证存储时间的正确性*
查看MySQL容器,登录MySQL
1 | MySQL容器复制代码docker ps #查看所有容器 |
使用远程连接软件时要注意一个问题
1 | 远程链接修改复制代码 |
在容器内,MySQL表名大小写问题
此操作对于有强迫症的码农非常有用,能解决你内心的痛苦
解决此问题只需要知道两点
- 修改mysqld.conf 配置参数:lower_case_table_names
不同系统,该参数的默认值是不同的。- lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
- lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
- lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的
- MySQL容器内部mysqld.conf配置文件在:/etc/mysql/mysql.conf.d
1 | mysqld.conf复制代码docker exec -it mysql-5.7 /bin/bash |
此操作可以解决MySQL表名大小写问题,尤其对于activiti自动建立的表有奇效,会将表明统一小写仅此而已(解决强迫症)。
注意:
此操作在已存在表的数据库进行操作时,需要注意将已经大写的表进行备份,并且删除,在执行上面操作后,在将保存的表数据进行恢复即可。如无备份,你在上进行以上操作的时候,会将你所有大写的表进行隐藏,只是隐藏,修改lower_case_table_names =0时会自动恢复。但是,如果没有删除表,就进行了此操作,那么会在数据库出现一张大写的表和同名的小写表。
本文转载自: 掘金