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. 验证与日志排查:通过日志快速定位问题。

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

相关推荐
摇滚侠10 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试11 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
2501_9377671611 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
silvamux_13 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
I Am a robert girl14 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒15 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
SelectDB15 小时前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB16 小时前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析
SelectDB16 小时前
Apache Doris + Vane:让多模态数据进入业务分析
大数据·数据库·数据分析
pjj1985417 小时前
ClickHouse 与 Doris 数据库技术梳理:看懂分析型数据库
数据库·clickhouse