我怎么能将一个巨大的MySQL数据库从一台服务器移动到另一台mysql服务器

我有一个巨大的MySQL数据库,说15G的大小。 现在我想把数据库移动到另一个mysql服务器上,通常的方法是导出mysql文件,然后将这个文件导入到目标服务器。 但是我发现这个过程非常缓慢,错误发生了。 任何更好的方法来做到这一点? 请告诉我 。 谢谢 。

您可以将底层数据库文件复制到新服务器。 例如,如果你的数据库文件在/ var / lib / mysql中。 然后

tar -zcvf ~/database.tar.gz /var/lib/mysql/<database-name> # compress the data 

然后将压缩文件复制到新服务器的mysql数据库位置。 这会更快,你不需要使用mysqldump。

我可以考虑将数据库迁移到新硬件的两个选项,并且停机时间最短。

1:使用复制:build立复制到新机器,然后将机器传播到主机并closures旧数据库。 我没有用mysql做这个,所以我不确定 – 可能有一些问题,但它对PostgreSQL完美的工作。

2:使用基于文件系统的rsync复制:

  1. rsync从旧机器到新机器: rsync -rav /var/lib/mysql/ newmachine:/var/lib/mysql/ 。 这将需要很长时间,但在第一次rsync期间不需要closuresmysql。
  2. 在旧机器上closuresmysql
  3. 再次运行rsync。 这一次它只会传输自从以前的rsync运行以来更改的文件,所以它应该更快完成。
  4. 在新机器上启动mysql。

但是:如果你的机器有不同的操作系统,体系结构或mysql版本,你可能会遇到一些问题。 例如,我确定无法为PostgreSQL从32位到64位主机执行基于文件系统的副本。 AFAIR mysql允许这个,但你仍然可以有其他一些问题。