mysql的数据库由C盘移到F盘的步骤
一、 准备工作:
1. 数据库备份:
-
F盘创建mysql_backup文件夹。
-
管理员身份运行:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump" -u root -p --all-databases > f:\mysql_backup\all_databases.sql
2. MySQL80服务停止:
- Win+R 输入
services.msc找到MySQL80服务,右键选择 停止。
二、 迁移数据目录
1. 文件复制:
- 安装目录复制:
C:\Program Files\MySQL\MySQL Server 8.0复制到F:\MySQL_Server_8.0。 - my.ini复制:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini复制到F:\MySQL_Server_8.0\my.ini。 - 安装目录复制:
C:\ProgramData\MySQL\MySQL Server 8.0\Data复制到F:\MySQL_Data\Data。
2. 修改配置my.ini中的文件路径
[mysqld]
datadir="F:\MySQL_Data\Data" # 指向新 Data 目录
basedir="F:\MySQL_Server_8.0" # 指向新 MySQL 根目录
secure-file-priv="F:/MySQL_Server_8.0/Uploads"
三、 注册新服务路径
- 以管理员身份打开命令行。
- 卸载旧服务:
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --remove MySQL80。 - 安装新服务并绑定路径:
"F:\MySQL_Server_8.0\bin\mysqld" --install MySQL80 --defaults-file=F:\MySQL_Server_8.0\my.ini。 - 启动服务:
net start MySQL80。
四、 为 MySQL 服务账户分配目录权限
- 在 F 盘创建Uploads目录:
F:\MySQL_Server_8.0\Uploads。 - 获MySQL 服务账户名称:
C:\WINDOWS\system32>sc qc MySQL80 | findstr "SERVICE_START_NAME" - 右键点击新目录
F:\MySQL_Server_8.0\Uploads→ 属性 → 安全,添加 MySQL 服务账户(Local System),赋予 完全控制 权限。 - 导出测试:
- 连接mysql:
"F:\MySQL_Server_8.0\bin\mysql" -u root -p- 生成test.csv:
检查SELECT 'Hello', 'World' INTO OUTFILE 'F:/MySQL_Server_8.0/Uploads/test.csv' FIELDS TERMINATED BY ',';F:\MySQL_Server_8.0\Uploads\test.csv是否生成。 - 导入测试:
- 创建数据库:
CREATE DATABASE mydb; USE mydb; CREATE TABLE test_table (col1 VARCHAR(100), col2 VARCHAR(100));- 导入数据:
LOAD DATA INFILE 'F:/MySQL_Server_8.0/Uploads/test.csv' INTO TABLE test_table FIELDS TERMINATED BY ',';- 查看数据:
SELECT * FROM test_table
五、 验证迁移结果
- 检查服务状态:
确认MySQL80服务已启动且无报错。 - 登录 MySQL 验证数据:
mysql -u root -p
SHOW DATABASES;
-
检查错误日志:
SHOW VARIABLES LIKE 'log_error';查看
F:\F:\MySQL_Data\Data\USER-20180505TF.err确认无路径错误。
六、清理旧文件
确认迁移成功后,可删除 C 盘原 MySQL 文件夹和 C:\ProgramData\MySQL\MySQL Server 8.0\Data。