快速重建 MySQL 开发环境,核心是「备份还原 + 配置复用 + 依赖对齐」。只要保留好关键数据和配置,本地重装或换机器后半小时内就能恢复可用状态。
一、提前备份好这三类关键内容
重建快不快,取决于之前有没有留好“重启按钮”:
数据库数据:用mysqldump导出结构+数据(推荐加
--single-transaction --routines --triggers),或直接打包
data目录(需停服,适合 InnoDB 表); MySQL 配置文件:如
my.cnf或
my.ini,重点关注
[mysqld]段的端口、字符集(
character-set-server=utf8mb4)、时区、日志路径等; 用户与权限脚本:运行
SELECT CONCAT('CREATE USER ''',user,'''@''',host,''' IDENTIFIED BY ''password123'';') FROM mysql.user WHERE user != 'mysql.infoschema'; 生成建用户语句,再用 SHOW GRANTS FOR 'devuser'@'localhost';导出权限。
二、安装 MySQL 后立即执行的初始化动作
避免装完发现连不上、中文乱码、权限报错:
替换或软链接已备份的my.cnf到正确位置(Linux:
/etc/my.cnf,macOS Homebrew:
/usr/local/etc/my.cnf,Windows: MySQL 安装目录下); 启动服务后,先用
mysql -u root -p登录,执行
SET NAMES utf8mb4;并检查
SHOW VARIABLES LIKE 'character_set%';确认编码统一; 导入用户脚本(注意修改密码占位符),再逐个导入
mysqldump生成的 SQL 文件,顺序建议:库 → 表结构 → 数据 → 存储过程/事件。
三、用 Docker 一键拉起(适合追求极简和隔离的场景)
无需本地安装,一条命令启动带自定义配置的 MySQL 容器:
准备my.cnf放在当前目录,内容含
skip-host-cache、
default-authentication-plugin=mysql_native_password(兼容旧客户端); 运行:
docker run -d --name mysql-dev -p 3306:3306 \
-v $(pwd)/my.cnf:/etc/mysql/conf.d/custom.cnf \
-v $(pwd)/init:/docker-entrypoint-initdb.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=myapp \
-e MYSQL_USER=dev -e MYSQL_PASSWORD=dev123 \
-v mysql-data:/var/lib/mysql \
-d mysql:8.0把 SQL 初始化文件(如
01-create-tables.sql)放进
init/目录,容器首次启动会自动执行。
四、验证与收尾:5 分钟确认是否真正可用
别跳过这步,很多“看似启动成功”其实连基础功能都异常:
连接测试:mysql -h 127.0.0.1 -P 3306 -u dev -pdev123 -D myapp -e "SELECT VERSION();"; 写入测试:插入含中文、emoji 的记录,查出来确认没截断、没问号; 应用对接:用本地项目跑一次数据库迁移(如 Laravel 的
php artisan migrate或 Spring Boot 启动),观察日志是否报连接超时、权限拒绝、SQL 语法错误。
