Windows下MySQL8.0数据库文件路径修改和数据转移

yumo6663个月前 (03-28)技术文章32

什么情况需要修改MySQL数据文件路径?

MySql在安装之初,默认的安装位置与数据保存位置都是在C盘,时间久了,C盘就会爆满,因此需要修改MySql数据保存位置。

本例从C盘转移到D盘。

操作步骤:

1、 备份数据库。

2、 找到MySQL数据文件Data的路径,MySQL8.0的默认安装的Data路径为C:\ProgramData\MySQL\MySQL Server 8.0\Data。也可以通过命令查询:Show Variables LIKE “Datadir”。

如果过没有修改则可在C:\ProgramData\MySQL\MySQL Server 8.0路径下可以找到my.ini配置文件。在my.ini中可以找到Data的路径:



3、 停止MySQL服务。

4、 在需要转移的目标盘下新建目录,如D盘下新建MySQLData目录,然后将C:\ProgramData\下的MySQL文件夹复制到目标目录下。


然后将源目录下的MySQL备份后删除或者将MySQL文件夹名改掉。

5、 修改目标目录下的my.ini配置文件中的datadir的路径,即转移后新路径:



6、 修改服务启动路径配置:

先查看服务启动的配置文件路径,如果没修改应该还是默认的C盘C:\ProgramData\MySQL\MySQL Server 8.0\


因为我们前面已经把原C盘ProgramData下的MySQL删掉或重命名,所以默认配置文件路径会找不到,服务将会无法启动。修改路径的方法:

a. regedit打开注册表。

b.
HKEY_LOCAL_MACHINE----SYSTEM----CurrentControlSet----Services----mysql,修改ImagePath为当前路径。



PS:如果我们只是把C:\ProgramData\MySQL\MySQL Server 8.0\下的Data转移到其他盘,其他的内容还是保留在C盘(第4步中不是将MySQL全部转移到新目录,只是将MySQL下的Data转移到新目录,保留C盘的MySQL目录),即my.ini还是在原路径下,就不需要修改服务启动路径。

7、 启动MySQL服务器,如果服务能正常启动,我们可以通过第2步的方法查看datadir的路径是否为新的路径。

8、 如果启动失败,报以下错误:


我们做以下检查:

A、 服务启动路径是否正确,参考上面第6步。

B、 检查服务启动配置文件my.ini里配置的datadir是否正确,另外my.ini保存编码是否为ANSI。


C、 检查转移目标文件夹的权限,本例中的D盘MySQLData文件夹的权限。需要添加NETWORK SERVER用户组。



添加方法:点击安全选项卡中的编辑按钮,

进去后点击添加



进去后点击高级


进去后在点击立即查找,在搜索结果中


选中NETWORK SERVICE,然后一直点确定


最后,进入权限窗口,给NETWORK SERVICE勾选完全控制,一直点击确定,完成。

相关文章

如何将服务器数据迁移到另一台服务器

将服务器数据迁移到另一台服务器可以通过以下几种常见的方法实现:首先购买一台服务器,可以在网址栏搜索 218.0.48.3:8801购买。1、直接复制文件通过网络连接(如 SSH、FTP 等)将数据从源...

怎样快速地迁移 MySQL 中的数据?

MySQL 数据库是一个常见的关系型数据库,在实际应用中,可能需要将数据从一个 MySQL 数据库迁移到另一个 MySQL 数据库,或将 MySQL 数据库中的数据迁移到其他类型的数据库。以下是一些快...

MySQL 导出数据

MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件上。使用 SELECT ... INTO OUTFILE 语句导出数据以下实例中我们将数据表 w3csch...

MySQL数据导入Mysqlimport

大家好,我是RomMr,一个乐于分享的it男,今天和大家分享的是Mysqlimport详解1、mysqlimport命令导入数据:举例代码:mysqlimport -uuser_name -ppas...

MySQL中如何导入数据

使用 LOAD DATA 导入数据MySQL 中提供了LOAD DATA INFILE语句来插入数据。 以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 myt...

MySQL和PostgreSQL:数据库切换不迷路,怎么高效切换库?

在数据库的使用过程中,切换库是个常见的操作,今天我们来讲讲MySQL中的 USE dbname; 命令,并把它和PostgreSQL的数据库切换操作对比一下,通过这个对比,我们可以更好地理解在不同的数...