停止 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 的数据存储路径即可成功迁移至新位置。
更多内容 关注
关注 微信公众号 “矩阵之芯”