记用docker.io/mysql 5.7.11镜像run一个mysql容器:
在宿主主机要挂载mysql配置文件的地方新建一个my.cnf文件(我这里的路径是/home/mydb/master/config/),内
[mysqld]
user=mysql
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
运行命令创建容器:
docker run --privileged=true --name mydbMaster -p 3308:3306
-v /home/mydb/master/data:/var/lib/mysql
-v /home/mydb/master/config/my.cnf:/etc/mysql/my.cnf
-e MYSQL_ROOT_PASSWORD=gp123 -d mysql:5.7.11 --lower_case_table_names=1
解析:--privileged=true #让docker容器获得宿主主机root权限
--name mydbMaster #容器取名mydbMaster
-p 3308:3306 #将容器的3306端口映射到宿主主机的3308端口上
-v /home/mydb/master/data:/var/lib/mysql
-v /home/mydb/master/config/my.cnf:/etc/mysql/my.cnf #将容器中mysql数据库的数据和配置文件挂载到宿主主机的对应的文件夹下
-e MYSQL_ROOT_PASSWORD=gp123 #设置容器mysql数据库root用户密码为gp123
mysql:5.7.11 #是我mysql镜像,也可以用镜像ID前几位
--lower_case_table_names=1 #表名大小写设置,默认为0. 我这里使用默认的时候因为表名大小写问题,Spring boot的定时任务Scheduled
报错了,后来设置为1忽略表名大小写后就不会了
lower_case_table_names=0 #表名存储为给定的大小和比较是区分大小写的
lower_case_table_names=1 #表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=2 #表名存储为给定的大小写但是比较的时候是小写的
若指令加上 -e MYSQL_USER="gp" -e MYSQL_PASSWORD="gp123" 可直接创建非root账户