windows下 mysql 转移data目录

谁说我不能喝 提交于 2020-01-31 05:23:11

 

昨天遇到一个现场问题,实施人员把mysql的data放在C盘,用过一阵以后C盘快满了。

于是准备做数据迁移,想到如下几种方案(均需要先把mysql服务停掉):

1.转储SQL文件

但是问题是,想要迁移的库占了1.5T,是T啊,不是G,光生成SQL文件就需要N多天了,还不说这种方式对于大容量库容易出问题,果断放弃

2.使用软链接

还想到一个方式是软链接:把data复制到别的盘,C盘的data注释掉(原文件最好先别删),然后C盘原路径下使用一个名为data的软链接mklink到刚才转移到其他盘符的data上,mysql.ini配置里的路径保持不变(就是用了一个名字和原名称data一样的影子指到了别的盘,数据存储在其他盘,但是路径仍在C盘,点开C盘的data,上方的路径显示为C盘路径,不像快捷方式那样:点击快捷方式后跳转到目标位置,路径也变成别的盘符)。

理论上再启动mysql就ok了,然鹅呢,重启数据库失败,error1067,查了N多个1067的解决方案,均无果。放弃!

(此方式其实可以使用,后文再说)

3.迁移data文件夹,更改mysql.ini路径

步骤:1)拷贝data文件夹到其他盘符

          2)更改my.ini中datadir的路径为新data路径(不用将路径中的\改成/)

          3)重启mysql

咦???还是error1067!!!

后来发现一个帖子说道:需要把新data目录下除了文件夹以外的其余文件全部删掉,然后把mysql的服务属性中的登录身份改成本地:

 

重启mysql服务,咦,竟然起来了!

然鹅,使用时发现,打开表的时候提示该表丢失???什么鬼???

又多方查找,发现新data目录下的ibdata1文件不能删,把原data下的ibdata1拷贝到新data下,重启mysql,成功!完美!

 

咦?是不是想到了什么?对!第二种方法中也是error1067,是不是同样的问题呢?

照着第三种方案试一下:删掉除了ibdata1以外的文件,更改mysql登录属性,重启,成功!

当初看帖子时,以及老员工说不要随便更改路径,容易出问题,于是才先想的第二种方案。现在看来,并没有什么大的影响。

------------------------

好,问题解决,以下详细介绍步骤:

方案2、3均需要的步骤:

1)先停止mysql服务

2)拷贝C:\ProgramData\MySQL\MySQL Server 5.6\路径下的data文件夹到其他盘符,比如放到D:\mysqldata\下

3)新data目录下除了文件夹以及ibdata1这个文件,全部删掉

4)更改mysql的服务属性,将登陆身份改成本地(后来发现这一步不是必须的,如果除了这一步还是不能启动mysql再改)

方案2、3单独剩余的单独步骤,:

方案2:

回到旧的data目录上一层C:\ProgramData\MySQL\MySQL Server 5.6\,data文件夹改个名字(不改名字不能创建同名的软链接),然后在此处打开命令行(按住shift点击右键),输入:mklink /D data "D:\mysqldata\data\"即可,然后重启mysql

方案3:

更改C:\ProgramData\MySQL\MySQL Server 5.6\下my.ini中datadir路径为新data路径

重启mysql

-------------------------------------

终极方案
出现这种情况的根本原因在于安装mysql时没有出现更改data路径的页面(本人使用的是mysql5.6,安装时选的server only),这就很尴尬了啊,那么怎么办呢,卸掉重装!

然后你会发现,咦?为什么这次可以修改data路径了?别问为什么了,赶紧选个最大的盘放data吧!
————————————————
版权声明:本文为CSDN博主「小西几zzZ」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a123gsfd/article/details/79999838

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!