查看docker仓库中的mysql信息
获取mysql镜像
1
| docker pull mysql:5.7.33
|
启动mysql镜像
随容器自动启动
方式一:通过映射目录方式挂载目录(同时应用宿主的时区;sql_mode配置;)
1 2 3 4 5 6
| docker run --restart=always --name mysql-dev \ -v /data/docker/instance/mysql/0/db:/var/lib/mysql \ -v /data/docker/instance/mysql/0/conf:/etc/mysql/conf.d \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ -e MYSQL_ROOT_PASSWORD=${ROOT_PASSWORD} -d -p ${HOST_IP}:${HOST_PORT}:${DOCKER_PORT} mysql:5.7.33 --sql-mode=NO_ENGINE_SUBSTITUTION
|
方式二:通过卷的方式挂载目录
1 2 3 4
| docker run --restart=always --name mysql-dev \ -v mysql-dev_db:/var/lib/mysql \ -v mysql-dev_conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.33
|
备注:--restart=always
可以替换成--rm
表示容器停止后不保留历史记录(2者不能同时使用)。mysql_data_v1
用于装载mysql数据,mysql_conf_v1
用于装载mysql的配置。如果卷不存在docker会自动创建。
自定义配置文件
mysql使用utf8mb4方式配置:/data/docker/instance/mysql/0/conf
为自定义配置的目录,该目录下的cnf文件将随容器启动时合并至mysql中
编辑文件
修改内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [client] default-character-set=utf8mb4
[mysql] default-character-set=utf8mb4
[mysqld] default-time-zone='Asia/Shanghai' sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION lower_case_table_names = 1 character-set-client-handshake=FALSE character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' skip-host-cache skip-name-resolve
|
重启容易使配置生效