MySQL:修改数据库默认存储目录与数据迁移

目录

简述

一、数据备份

[方法 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 的默认数据目录迁移到新位置。关键注意事项包括:

  1. 操作前备份数据:避免意外导致数据丢失。
  2. 配置文件与权限:确保 my.ini 的路径正确,且 MySQL 服务账户有权限访问新目录。
  3. 验证与日志排查:通过日志快速定位问题。

无论是为了释放系统盘空间,还是优化数据库性能,合理规划数据存储位置都是运维中的重要一环。

相关推荐
风哥2号几秒前
数据库教程FGMT50‑PostgreSQL体系结构深入与源码解析
数据库·postgresql
yxlalm6 分钟前
对话记忆持久化-Redis热与MySQL冷
android·redis·mysql
ly768913 分钟前
磁盘 I/O 延迟突增:用 iostat、blktrace 与火焰图定位到具体调用栈
java·linux·前端·数据库·iostat·磁盘 i/o·blktrace
倔强的石头_14 分钟前
数据迁移工具KDMS如何生成量化评估报告
数据库
冰暮流星18 分钟前
mysql多表练习2
数据库·sql·mysql
天天喝旺仔24 分钟前
Git 内部原理深度解析:从 blob/tree/commit 对象到 packfile 与垃圾回收
数据结构·数据库·git·算法·哈希
风哥2号3 小时前
数据库教程FGMT52‑PostgreSQL用户权限与安全管理
数据库·postgresql
风哥2号9 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
YangYang9YangYan10 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技11 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构