写在开头
MySQL部署的时候,通常需要配置很多参数,本文就此介绍一下详细的参数配置
启动命令
示例:
docker run -d --restart=always --privileged=true -v /usr/local/docker_data/mysql/data:/var/lib/mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=password --name=mysql5.7 mysql:5.7 --lower_case_table_names=1
语法(Usage)
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
参数介绍(OPTIONS)
-d
: 后台运行
-p
: 端口映射, 宿主机:容器
-e
: 配置参数,MYSQL_ROOT_PASSWORD
root账号的密码
-v
: 挂载文件,即文件同步,一般需要把数据文件、配置文件、日志挂载到宿主机,时区同步也可以将/etc/localtime
文件同步到容器中
--privileged
: 获取宿主机root权限
--restart
: 重启策略
no
: 默认的重启策略,在任何情况下都不会重启容器。always
: 容器总是重新启动。on-failure
: 如果退出代码指示的故障错误政策重启的容器。restart: "no" restart: always restart: on-failure=1
MySQL镜像配置参数介绍(ARG)
--lower_case_table_names
: MySQL配置是否忽略表名大小写,1忽略,2严格匹配
关于时区同步
不知为何,有时部署时挂载 localtime
文件会异常,这里记录一下另外几种同步时间的方法
# 手动将宿主机中的 `localtime` 文件复制到容器中去
docker cp /etc/localtime mysql5.7:/etc/localtime
docker cp /usr/share/zoneinfo/Asia/Shanghai mysql5.7:/etc/localtime
容器内部操作
# 进入容器
docker exec -it container_name(容器名称) bash
修改MySQL配置
# 更新源并安装vim文本编辑器
apt-get update && apt-get vim
# 进入配置文件的文本编辑模式
vim /etc/mysql/mysql.conf.d/mysqld.cnf
配置修改后重启容器
使配置生效
登录MySQL
mysql -u root -p password
数据还原
docker exec -i some-mysql sh -c 'exec mysql -uroot -ppassword' < /some/path/on/your/host/all-databases.sql