Docker 安装 MySQL 8.0
友情提示
推荐您使用 Chrome 浏览器来阅读本实战专栏,其他浏览器可能存在兼容性问题。
本小节中,我们将通过 Docker 来快速搭建一个 MySQL 8.0 版本的数据库环境。
TIP : 本文假设你本地已经搭建好了 Docker 环境,不清楚如何搭建的童鞋,可以翻阅上个项目《前后端分离博客》 的下面小节, 中间有讲解如何搭建 Docker 环境:
1. 为什么要从 MySQL 5.7 升级到 8.0 版本?
上个项目 中,我们使用的是 5.7 版本的 MySQL, 这次,我们将使用 MySQL 8.0 版本。
MySQL 8.0 相对于 5.7 版本带来了许多新特性和改进,这些改进涵盖了性能、安全性、可用性、功能性等方面。以下是 MySQL 8.0 相对于 5.7 的一些优势:
-
JSON 支持的改进: MySQL 8.0 提供了更加完善的 JSON 支持,包括 JSON 数据类型的完全支持、JSON 函数和操作的增强、JSON 路径表达式的支持等,使得在 MySQL 中处理 JSON 数据更加方便和高效。
-
窗口函数: MySQL 8.0 引入了窗口函数的支持,使得在 SQL 查询中可以更灵活地进行聚合和分析操作,例如在窗口内计算排名、累积和等。
-
CTE(Common Table Expressions): MySQL 8.0 支持公共表表达式(CTE),允许在查询中定义临时结果集,并在后续查询中引用,提高了查询的可读性和可维护性。
-
更强大的安全性功能: MySQL 8.0 引入了更多的安全性功能,包括密码策略、密码过期、密码历史记录、角色管理等,加强了对数据库的访问控制和身份验证。
-
新的数据字典: MySQL 8.0 引入了新的数据字典架构,将系统表重新组织为 InnoDB 存储引擎的表,提高了性能和可扩展性,并且降低了元数据操作的锁定竞争。
-
更好的性能和优化: MySQL 8.0 对查询优化器进行了改进,包括新的查询规划器、索引算法的改进、多版本并发控制等,提高了查询性能和并发处理能力。
-
GIS 功能增强: MySQL 8.0 增强了对地理信息系统(GIS)功能的支持,包括新的地理数据类型、空间索引的改进、地理空间分析函数的增强等。
-
事务管理的改进: MySQL 8.0 引入了原子数据定义语句(DDL)的事务性,允许将 DDL 操作作为一个事务提交或回滚,提高了数据库的可靠性和一致性。
-
支持更多的 SQL 标准: MySQL 8.0 增加了对SQL标准的支持,包括窗口函数、CTE、空间数据类型等,使得 MySQL 更加符合 SQL 标准,提高了跨平台的兼容性。
2. 下载 MySQL 8.0 镜像
打开 PowerShell 命令行,执行如下命令:
docker pull mysql:8.0
拉取 MySQL 镜像完成后,执行如下命令,即可在本地镜像列表中看到下载好的 8.0
版本镜像了:
docker images
3. 启动 MySQL 容器
有了镜像后,通过该镜像,来启动一个 MySQL 容器,执行如下命令:
docker run -d --name mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
解释一下参数的含义:
-
-d
:以后台的方式运行; -
--name mysql
:指定容器的名称为mysql8.0
; -
-p 3306:3306
: 将容器中的 3306 端口挂载到宿主机的 3306 端口上(前面是宿主机的端口号,后面是容器的端口号); -
-e MYSQL_ROOT_PASSWORD=123456
:指定root
用户的密码为 123456;注意 : 这里演示使用的密码较为简单,你也可以整一个安全性较高的密码。
4. 查看容器是否启动成功
容器启动后,可通过执行如下命令来查看正在运行中的 Docker 容器:
docker ps
可以看到列表中有个 MySQL 8.0 的容器正在运行了。
5. 通过工具连接数据库
这里小哈使用的 Navicat, 输入主机、端口、用户名、密码后,点击测试连接按钮,如果如下图所示, 看到提示连接成功:
则表示本地的 MySQL 8.0 数据库环境,搭建成功啦~