1. 准备工作:为什么选择Docker跑MySQL,以及环境踩坑
1.1 从零开始的动机:本地安装MySQL的痛点
先说我自己的经历。早几年我在Windows上第一次装MySQL,踩坑踩到怀疑人生:官网下载安装包、选版本、配 my.ini、设服务名、初始化 data 目录、设置 root 密码,一步不对就得卸载重来。中途还遇到过 MSVCR120.dll 缺失、3306 端口被占用、安装到最后一步服务启动失败,各种幺蛾子。最崩溃的是,单位用的 MySQL 5.7,自己电脑装的是 8.0,两边语法和认证方式有差异,本地调试好好的,一上测试环境就报错。后来切到 Docker 方案之后,这些问题基本一次性清零。
Docker 下的 MySQL 本质上就是把数据库跑在一个独立的容器里。容器可以理解为一个小型虚拟机,但又比虚拟机轻量得多,它共享宿主机的操作系统内核,只打包了 MySQL 运行所需的环境和文件。你用 Docker 跑 MySQL,不需要关心底层操作系统是 Windows、macOS 还是 Linux,也不需要手动安装各种依赖库,一条 docker run 命令就能把数据库拉起来。更关键的是,你可以同时跑 5.7 和 8.0 两个版本互不干扰,想切换项目环境的时候,停止一个容器再启动另一个就行。
那这篇博文适合谁看?我认为是三类人:第一类是刚接触 Docker 的新手,想用 Docker 部署 MySQL 但不知道从哪下手;第二类是本地开发环境一团乱麻、频繁重装数据库的老手,想换个干净利落的管理方式;第三类是需要在测试环境快速搭建数据库、导入数据跑验证的同学。这篇文章会把镜
