使用Docker安装MySQL5.7.36

拉取镜像并查看

bash 复制代码
docker pull mysql:5.7.36

拉取成功后查看(非必须)

bash 复制代码
docker images

创建并设置宿主机 mysql 配置文件目录和数据文件目录

创建相关文件夹将容器中的mysql数据保存到本地,这样即使容器被删除,数据也不会丢失。

bash 复制代码
mkdir -p  /opt/soft/mysql/5.7.36/data   /opt/soft/mysql/5.7.36/conf   /opt/soft/mysql/5.7.36/logs

创建实例并启动

bash 复制代码
docker run -p 13306:3306 --name mysql5.7.36 \
-v /opt/soft/mysql/5.7.36/logs:/var/log/mysql \
-v /opt/soft/mysql/5.7.36/data:/var/lib/mysql \
-v /opt/soft/mysql/5.7.36/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.36

这个Docker命令是用来启动一个基于MySQL 5.7.36版本的容器,并进行一些定制化的配置。下面是对这条命令中各个部分的详细解释:

- docker run: 命令用来创建一个新的容器并运行一个命令。
- p 13306:3306: 这个选项映射容器内部的3306端口到主机的13306端口,允许外部通过主机的13306端口访问容器中的MySQL服务。
-name mysql5.7.36: 为这个容器指定一个名字,这里是mysql5.7.36,便于后续管理和识别。
- v /opt/soft/mysql/5.7.36/logs:/var/log/mysql: 将主机上的/opt/soft/mysql/5.7.36/logs目录挂载到容器内的/var/log/mysql,用于存放MySQL的日志文件。这样做的好处是即使容器被删除,日志也不会丢失。
- v /opt/soft/mysql/5.7.36/data:/var/lib/mysql: 类似地,将主机的/opt/soft/mysql/5.7.36/data目录挂载到容器的/var/lib/mysql,这是MySQL的数据存储目录。挂载数据卷可以持久化数据,保证数据不因容器重启或删除而丢失。
- v /opt/soft/mysql/5.7.36/conf:/etc/mysql: 将主机的/opt/soft/mysql/5.7.36/conf目录挂载到容器的/etc/mysql,允许使用自定义的MySQL配置文件,而不是容器默认的配置。
- v /etc/localtime:/etc/localtime:ro: 将主机的系统时间文件挂载到容器中,确保容器内的时间与主机同步,并且以只读模式挂载(ro),防止容器内部修改主机的时间设置。
- e MYSQL_ROOT_PASSWORD=root: 设置环境变量MYSQL_ROOT_PASSWORD,用于指定MySQL的root用户的密码。在这个例子中,密码被设置为root。请根据实际情况修改为强密码以确保安全。
- d mysql:5.7.36: 最后一部分指定了要运行的镜像名称和标签,这里是mysql:5.7.36,即MySQL 5.7.36版本的官方镜像,并且使用d参数让容器在后台运行。

综上所述,这条命令会创建并启动一个MySQL 5.7.36的容器,配置了日志、数据、配置文件的持久化存储,以及时间同步,并设置了root用户的密码。

添加宿主机配置文件

bash 复制代码
vim /opt/soft/mysql/5.7.36/conf/my.cnf
bash 复制代码
[client]
# 设置客户端默认字符集
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
# 设置最大连接数
max_connections = 500
# 字符集和排序规则  
character-set-server = utf8mb4  
collation-server = utf8mb4_unicode_ci  
# 设置服务器的时区
default-time-zone = '+08:00'
# 设置是否允许MySQL对表名大小写敏感(1为不敏感)
lower_case_table_names = 1

重启MySQL服务并验证配置是否生效

宿主机执行命令

bash 复制代码
docker restart mysql5.7.36

启动后连接数据库,查询一下修改的配置是否生效,例如

bash 复制代码
mysql> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 500   |
+-----------------+-------+

至此,使用Docker安装MySQL5.7.36已经完成,如果还需要修改相关配置,继续修改my.cnf,并重启即可。

相关推荐
名字还没想好☜8 分钟前
Docker 网络实战:bridge/host/none/自定义网络、容器互通与端口映射踩坑
运维·docker·kubernetes
用户3074596982079 分钟前
MySQL EXPLAIN 零基础完全精通指南:从"看不懂"到"会优化"
mysql
这个DBA有点耶26 分钟前
自增主键用尽了怎么办?INT溢出、在线迁移与预防策略全解析
数据库·mysql·代码规范
迷茫的大专生44 分钟前
高可用总结
redis·mysql·nginx·高可用
March.s2 小时前
Docker 容器与网络深度指南:从入门到精通
docker
探索云原生2 小时前
KubeClipper 1.7.0 发布:Operation 优化与 Kubernetes 1.37 支持
linux·docker·云原生·kubernetes·go
迷茫的大专生2 小时前
服务器部署与 MySQL 运维学习笔记:从 Ansible 到高可用与性能优化
mysql·nginx·ansible·mysql优化·keepalive
Lyra_Infra3 小时前
从 MySQL 到达梦:一次信创隔离环境里的数据库迁移踩坑实录
数据库·后端·mysql
fengkai45454 小时前
八、Docker详解1-3
运维·docker·容器
泡茶喝茶写代码4 小时前
量化数据开发实战系列(第 25 篇):基金基础接口实战:基金列表、ETF-LOF 分类、基金概况、净值数据
java·数据库·人工智能·python·mysql