如何将 MySQL 数据库从一个硬盘驱动器移动到另一个硬盘驱动器?

Posted

技术标签:

【中文标题】如何将 MySQL 数据库从一个硬盘驱动器移动到另一个硬盘驱动器?【英文标题】:How do I move a MySQL database from one hard drive to another? 【发布时间】:2012-12-11 03:36:48 【问题描述】:

我在 Windows7 上使用 mysql 5.5 和 MySQLWorkbench。我已经在我的 C: 驱动器上成功创建了一个数据库,但我想将它移动到我的 E: 驱动器。我停止了 mysqld 守护进程并编辑了 my.ini 文件以将 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" 更改为 datadir="E:/MySQL/data/"。我将数据从 C: 位置复制到 E: 位置。 我可以启动mysqld进程,但是我创建的数据库没有出现。谁能解释我做错了什么?

【问题讨论】:

您更改的my.ini 文件在哪里?它还能指向C: 位置吗? 它指向正确的位置。 【参考方案1】:

基本上,您希望将旧目录中的所有内容复制到新目录中。确保在执行此操作时不要复制二进制日志(如果有,它们看起来像 mysql-bin.001 等,也不要复制 mysql-bin.index,因为它包含对旧二进制日志的真实路径引用) .完成此操作后,您应该能够重新启动 mysql 守护程序并登录以查看数据库。

PS:未经测试,但应该可以工作。

【讨论】:

【参考方案2】:

当我试图移动我的数据库时,我遇到了一个问题,即 windows 对新数据文件夹的权限与原始文件夹不同。您可以通过转到文件夹的属性然后选择安全选项卡来检查正确的用户是否有权访问新文件夹。

【讨论】:

【参考方案3】:

因为我希望我的 innodb 数据库位于另一个分区上,所以我从 MySQL Workbench 中停止了 MySQL。我将我的 innodb 数据库 ibdata1 以及 MySQL 在我的 C:\ProgramData\MySQL\ 文件夹中自动创建的 2 个日志文件复制到我的 E: 分区上的一个新文件夹中。我在 my.ini 中添加了以下内容:

innodb_data_home_dir = "E:/MySQL Data"

现在,当我启动我的数据库时,对 E: 驱动器中的 ibdata1 进行了所有更改。

【讨论】:

见下面innodb-configuration【参考方案4】:

使用此工具http://sourceforge.net/projects/mysqlbutool/将数据库转储到磁盘然后使用此工具http://www.webyog.com/将其还原到新服务器

【讨论】:

我不会将其移至另一台服务器。我希望实际数据来自 E: 驱动器而不是 C: 驱动器。我希望 mySQL 存在于 C: 驱动器上。 现在,我的 innodb 数据存储在服务器上的一个隐藏文件夹中:C:\Program Data\MySQL\MySQL Server 5.5\data\ 我想移动到 E: 驱动器跨度> 能否将当前innodb_data_home_dir中的数据复制到新位置,然后将新位置指定为正确的innodb_data_home_dir路径?

以上是关于如何将 MySQL 数据库从一个硬盘驱动器移动到另一个硬盘驱动器?的主要内容,如果未能解决你的问题,请参考以下文章

将 android-sdk 和 sdk 文件夹移动到另一个驱动器

MySQL如何复制到移动硬盘上

如何在Mysql大表中将数据从表移动到另一个表

设USB 可移动存储设备设为只读的方法

如何将 redis 数据库从一台服务器移动到另一台服务器?

如何将 redis 数据库从一台服务器移动到另一台服务器?