停止 MySQL 服务
-
以管理员身份运行命令提示符(CMD)或 PowerShell(记住,一定要管理员身份执行命令,不然会失败) 。
-
执行命令:
net stop mysql80(
mysql80是默认服务名,如果安装时修改过,请替换为你的服务名)
移动数据目录
- 找到当前 MySQL 数据目录(默认路径为
C:\ProgramData\MySQL\MySQL Server 8.0\Data)。
-
注意:
ProgramData是隐藏文件夹,需在文件资源管理器中启用“显示隐藏的项目”。
-
复制整个
Data文件夹到新位置(如 D:\OpenSource\mysql_data)。xcopy "C:\ProgramData\MySQL\MySQL Server 8.0\Data" "D:\OpenSource\mysql_data" /E /H /K /O /X
修改 MySQL 配置文件
-
打开 MySQL 配置文件
my.ini(默认路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini)。 -
在
[mysqld]部分修改以下参数:[mysqld] datadir="D:/mysql-data" # 新路径(用正斜杠或双反斜杠) secure-file-priv="" # 可选:如果涉及文件导入导出,调整此参数路径格式注意:
正确:D:/OpenSource/mysql_data 或 D:\OpenSource\mysql_data
错误:D:\OpenSource\mysql_data(单反斜杠会导致解析失败)
修改前
!
修改后
步骤 4:授予新目录权限
- 右键单击新目录(如 D:\OpenSource\mysql_data)→ 属性 → 安全 → 编辑。
- 添加用户
NT SERVICE\MySQL80(或你的 MySQL 服务名)。 - 赋予 完全控制权限 → 应用。
修改my.ini 数据库数据文件路径后重新启动失败
原因是原理的数据库没有做迁移,迁移后重新启动正常
最后查看一下路径
启动 MySQL 服务
net start mysql80
验证是否成功
-
登录 MySQL:
mysql -u root -p -
执行 SQL 查看新路径:
SHOW VARIABLES LIKE 'datadir';应显示:D:\OpenSource\mysql_data
常见问题解决
-
服务启动失败:
- 检查
my.ini的路径格式是否正确(使用/或\)。 - 确保新目录权限已赋予
NT SERVICE\MySQL80。 - 查看错误日志(默认在
C:\ProgramData\MySQL\MySQL Server 8.0\Data\主机名.err)。
- 检查
-
表不存在或数据未迁移:
- 确认旧
Data文件夹是否完整复制到新位置。 - 检查是否有自定义表空间路径(需单独迁移)。
- 确认旧
-
权限问题:
- 如果服务账户不同(如
Local System),需在目录权限中添加对应账户。
- 如果服务账户不同(如
补充说明
-
默认路径参考:
- 配置文件:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini - 数据目录:
C:\ProgramData\MySQL\MySQL Server 8.0\Data
- 配置文件:
-
重要提示:操作前备份整个
Data目录以防意外!
通过以上步骤,MySQL 8 的数据存储路径即可成功迁移至新位置。
更多内容 关注
关注 微信公众号 “矩阵之芯”