windows系统下修改mysql 数据库数据目录

91 阅读2分钟

停止 MySQL 服务

  1. 以管理员身份运行命令提示符(CMD)或 PowerShell(记住,一定要管理员身份执行命令,不然会失败) 。

  2. 执行命令:

    net stop mysql80
    

      (mysql80 是默认服务名,如果安装时修改过,请替换为你的服务名)

移动数据目录

  1. 找到当前 MySQL 数据目录(默认路径为 C:\ProgramData\MySQL\MySQL Server 8.0\Data)。
  1. 注意ProgramData 是隐藏文件夹,需在文件资源管理器中启用“显示隐藏的项目”。

  1. 复制整个 Data 文件夹到新位置(如 D:\OpenSource\mysql_data)。

    xcopy "C:\ProgramData\MySQL\MySQL Server 8.0\Data" "D:\OpenSource\mysql_data" /E /H /K /O /X
    

修改 MySQL 配置文件

  1. 打开 MySQL 配置文件 my.ini(默认路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini)。

  2. [mysqld] 部分修改以下参数:

    [mysqld] datadir="D:/mysql-data" # 新路径(用正斜杠或双反斜杠) secure-file-priv="" # 可选:如果涉及文件导入导出,调整此参数
    

    路径格式注意

    正确:D:/OpenSource/mysql_data 或 D:\OpenSource\mysql_data

    错误:D:\OpenSource\mysql_data(单反斜杠会导致解析失败)

修改前

!

修改后

步骤 4:授予新目录权限

  1. 右键单击新目录(如 D:\OpenSource\mysql_data)→ 属性安全编辑
  2. 添加用户 NT SERVICE\MySQL80(或你的 MySQL 服务名)。
  3. 赋予 完全控制权限 → 应用。

修改my.ini 数据库数据文件路径后重新启动失败

原因是原理的数据库没有做迁移,迁移后重新启动正常

最后查看一下路径


启动 MySQL 服务

net start mysql80

验证是否成功

  1. 登录 MySQL:

    mysql -u root -p
    
  2. 执行 SQL 查看新路径:

    SHOW VARIABLES LIKE 'datadir';
    

      应显示:D:\OpenSource\mysql_data


常见问题解决

  1. 服务启动失败

    1. 检查 my.ini 的路径格式是否正确(使用 /\)。
    2. 确保新目录权限已赋予 NT SERVICE\MySQL80
    3. 查看错误日志(默认在 C:\ProgramData\MySQL\MySQL Server 8.0\Data\主机名.err)。
  1. 表不存在或数据未迁移

    1. 确认旧 Data 文件夹是否完整复制到新位置。
    2. 检查是否有自定义表空间路径(需单独迁移)。
  1. 权限问题

    1. 如果服务账户不同(如 Local System),需在目录权限中添加对应账户。

补充说明

  • 默认路径参考

    • 配置文件:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
    • 数据目录:C:\ProgramData\MySQL\MySQL Server 8.0\Data
  • 重要提示:操作前备份整个 Data 目录以防意外!

通过以上步骤,MySQL 8 的数据存储路径即可成功迁移至新位置。

更多内容 关注 

关注 微信公众号 “矩阵之芯” 

qrcode_for_gh_50c179de1736_258.jpg