目录
[方法 1:使用 mysqldump 导出数据](#方法 1:使用 mysqldump 导出数据)
[方法 2:直接复制数据目录](#方法 2:直接复制数据目录)
[二、修改 MySQL 默认数据库位置](#二、修改 MySQL 默认数据库位置)
[步骤 1:停止 MySQL 服务](#步骤 1:停止 MySQL 服务)
[步骤 2:修改配置文件](#步骤 2:修改配置文件)
[步骤 3:迁移数据到新目录](#步骤 3:迁移数据到新目录)
[步骤 4:设置新目录权限](#步骤 4:设置新目录权限)
[步骤 5:启动 MySQL 服务](#步骤 5:启动 MySQL 服务)
[登录 MySQL](#登录 MySQL)
简述
MySQL 默认将数据存储在系统盘(如 C:\ProgramData\MySQL\...),但随着数据量增长,系统盘可能面临空间不足的问题。此外,出于性能优化或安全性的考虑,用户可能需要将数据目录迁移到其他磁盘。
本文将详细介绍如何在 Windows 系统下修改 MySQL 的默认数据库位置,并确保数据安全备份与无缝迁移。
相关阅读: MySQL 安装过程记录以及安装选项详解
一、数据备份
方法 1:使用 mysqldump 导出数据
打开命令提示符(管理员权限),执行以下命令备份所有数据库:
bash
mysqldump -u root -p --all-databases > "D:\MySQL_Backup\full_backup.sql"
- -u root:以 root 用户登录。
- -p:提示输入密码。
- --all-databases:备份所有数据库。
方法 2:直接复制数据目录
停止 MySQL 服务(后续步骤会详细说明)。
将默认数据目录(如 C:\ProgramData\MySQL\MySQL Server 8.0\data)完整复制到安全位置。
二、修改 MySQL 默认数据库位置
步骤 1:停止 MySQL 服务
在Windows系统中,可以通过服务管理器找到MySQL服务并停止它。

**步骤 2:**修改配置文件
找到并修改MySQL的配置文件以指定新的数据库路径。配置文件通常位于C:\ProgramData\MySQL\MySQL Server 8.0

在配置文件中找到 datadir:
修改为非系统路径:(建议使用VSCode修改)
bash
datadir=D:/MySQL Server 8.0\Data
确保新的数据目录路径是正确的。
步骤 3:迁移数据到新目录
将当前MySQL数据目录(C:\ProgramData\MySQL\MySQL Server 8.0\Data)中的数据复制到D:\MySQL Server 8.0\data 中。为防止出错,建议将原数据目录重命名备份,将原 data 目录重命名为 data_backup。

步骤 4:设置新目录权限
MySQL 服务需要对新目录有完全控制权,右键点击新目录(如 D:\MySQL Server 8.0\data),选择 属性 > 安全 > 编辑。
添加用户或组:输入 NETWORK SERVICE(MySQL 默认服务账户)。

赋予 完全控制 权限。
如果使用自定义服务账户,需选择对应账户。

步骤 5:启动 MySQL 服务
如果不将旧的数据复制到新的路径下,会报如下错误:

复制数据后,启动MySQL服务,没有报错就OK了。

三、验证数据迁移成功
登录 MySQL
打开MySQL命令行工具,输入密码进行登录。

查看新数据目录
bash
SHOW VARIABLES LIKE 'datadir';

检查数据库完整性
bash
SHOW DATABASES;

五、总结
通过以上步骤,已成功将 MySQL 的默认数据目录迁移到新位置。关键注意事项包括:
- 操作前备份数据:避免意外导致数据丢失。
- 配置文件与权限:确保 my.ini 的路径正确,且 MySQL 服务账户有权限访问新目录。
- 验证与日志排查:通过日志快速定位问题。
无论是为了释放系统盘空间,还是优化数据库性能,合理规划数据存储位置都是运维中的重要一环。