如何将数据库文件迁移至D/E盘?
美国、香港服务器
如何将数据库文件迁移至D/E盘?
07-22 来源:
## 方案一:宝塔 Windows 面板 MySQL 迁移(最常用,适配你的环境)
Windows 宝塔**不支持后台可视化一键迁移数据目录**,推荐 2 种稳妥方式:
### 方式 1:停服迁移 data 目录(原地迁移,保留原有数据,首选)
1. **停止 MySQL 服务**
宝塔面板 → 数据库 → MySQL → 停止服务;
或者管理员 CMD 执行:
net stop bt-mysql
2. 复制完整数据库目录到 D 盘
宝塔 MySQL 默认数据路径:
`C:\BtSoft\mysql\MySQL57\data`(5.7 版本) / `C:\BtSoft\mysql\MySQL80\data`(8.0)
用系统命令完整复制(保留隐藏文件、权限,比拖拽复制更稳妥):
xcopy "C:\BtSoft\mysql\MySQL57\data" "D:\MySQL_Data\data" /E /H /K /Y
参数:
/E 复制所有子目录 /H 复制系统隐藏文件 /K 保留权限属性
3. 修改 MySQL 配置文件 `my.ini`
宝塔 → 数据库 → MySQL 设置 → 配置文件,找到 `[mysqld]` 区块:
# 原路径注释掉,修改为D盘路径(路径用正斜杠 / )
# datadir = "C:/BtSoft/mysql/MySQL57/data"
datadir = "D:/MySQL_Data/data"
# 同步修改文件导出临时目录
secure-file-priv = "D:/MySQL_Data/tmp_upload"
> 斜杠必须写 `/`,不要写 Windows 反斜杠 `\`,否则启动报错
4. **给 D 盘目录赋予系统权限(Windows 启动失败最常见原因)**
5. 右键 `D:\MySQL_Data` → 属性 → 安全 → 编辑
6. 添加用户:`NETWORK SERVICE`、`SYSTEM`、`Administrators`
7. 全部勾选:**完全控制、读取、写入、修改**权限
8. 启动 MySQL 服务验证
net start bt-mysql
宝塔面板进入数据库,查看所有库、表、数据全部存在即迁移成功。
### 方式 2:重装 MySQL + 导入备份(零出错,适合新手)
1. 宝塔备份全部数据库、下载备份包;
2. 卸载当前 C 盘 MySQL;
3. 重新安装 MySQL,**安装路径选择 D 盘**;
4. 新建数据库,一键导入之前的备份文件;
优点:无路径权限报错,缺点需要短暂停机。
### 进阶:符号链接(软链接,懒人方案)
不想改配置,直接让系统访问 C 盘路径自动跳转 D 盘:
1. 停止 MySQL;
2. 把 C 盘 data 文件夹剪切到 D 盘;
3. 管理员 CMD 创建目录映射:
mklink /J "C:\BtSoft\mysql\MySQL57\data" "D:\MySQL_Data\data"
启动服务即可,所有程序无需改动任何配置。
## 方案二:系统原生独立安装 MySQL5.7/8.0(非宝塔)标准迁移步骤
### 步骤 1:停止 MySQL 服务
1. Win+R 输入 `services.msc` 打开服务列表,找到服务名:`MySQL80`/`MySQL57`
2. 右键停止;CMD 命令:
net stop MySQL80
### 步骤 2:复制默认 data 数据目录到 D 盘
MySQL 默认隐藏数据目录(ProgramData 默认隐藏,文件管理器勾选「隐藏的项目」才能看见):
`C:\ProgramData\MySQL\MySQL Server 8.0\Data`
完整复制到:`D:\MySQL_Server\Data`
xcopy "C:\ProgramData\MySQL\MySQL Server 8.0\Data" "D:\MySQL_Server\Data" /E /H /K /Y
### 步骤 3:修改 my.ini 配置文件
路径:`C:\ProgramData\MySQL\MySQL Server 8.0\my.ini`
记事本打开,修改两处核心路径:
[mysqld]
# 数据存储主路径
datadir=D:/MySQL_Server/Data
# 导入导出文件路径同步修改
secure-file-priv="D:/MySQL_Server/Uploads"
# 日志路径一并迁移(可选,优化磁盘IO)
log-error="D:/MySQL_Server/Data/mysql-error.log"
### 步骤 4:文件夹权限授权(必做)
右键 `D:\MySQL_Server` → 安全,赋予 `NETWORK SERVICE`、`SYSTEM` 用户**完全控制**权限。
### 步骤 5:启动服务验证
net start MySQL80
登录 MySQL 执行语句查看当前数据路径,确认修改生效:
SHOW VARIABLES LIKE "datadir";
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快