【问题标题】:Method of migration of MySQL version to a new serverMySQL版本迁移到新服务器的方法
【发布时间】:2014-04-22 14:25:27
【问题描述】:

由于某些技术原因,我必须将我们在 CentOS 上运行的实际服务器迁移到新服务器上,但在 Ubuntu 上运行。

我必须保持现在的 SQL DB、相同版本的 MySQL 等。 我尝试了几种转储脚本和方法,但无法将转储导入更新版本的 MySQL。

所以我正在考虑将 /var/lib/MySQL 文件夹和其他 MySQL 文件夹复制到新服务器。 您对此有何看法?它会起作用吗?

我也在考虑去旧服务器的恢复控制台,对新服务器执行rsync,这样我就可以将整个系统复制到新服务器。 但在我看来,这有点沉重。而且我对 Unix 的了解还不足以remount 光盘并执行所有可以使复制工作的任务。

【问题讨论】:

  • 您尝试过使用 MySQL Workbench 吗?它的工具似乎可以很好地导出和导入。
  • “我必须保持现在的 SQL DB,相同版本的 MySQL,等等...我尝试了几个转储脚本,这不是矛盾吗?和方法,但无法将转储导入较新版本的 MySQL。”我不清楚您是否只想迁移数据或 MySQL 数据库服务器和实用程序代码(或至少确保您在新服务器上也有相同的 MySQL 服务器版本)?
  • 方法很多。最简单的方法是使用导出选项对数据库进行 SQL 转储,然后通过导入选项安装在其他机器上。但对于大型数据库来说,这不是一种安全的方法。
  • Pablo :是的,我做到了,但没有成功。 @fvu我只想迁移sql转储,但是我尝试了很多方法都没有成功……这是一个55Gb的巨大数据库。所以我认为它来自新服务器的MySQL版本。因此,我现在的目标是迁移数据,以及 MySQL 服务器和实用程序。
  • 它应该可以工作(你不是第一个需要迁移数据库的人:))所以在尝试迁移数据库二进制文件之前首先关注问题所在和原因可能是明智的,这一个非常糟糕的想法。

标签: mysql ubuntu centos migration


【解决方案1】:

实际上有几种方法可以做到这一点。第一个也是迄今为止最好的是评论者所说的。使用mysqldump 创建一个 sql 文件,然后将其导入到另一台机器上。如果其中一台机器存在空间问题,您可以更直接地导入,如下所示:mysqldump {YOUR OPTIONS HERE} | mysql -h {NEWSERVER} -u root -p

如果可能,您应该使用上述方法。在进行跨版本导入时,它将 100% 更好地工作。只需修复您看到的错误。如果不同版本的语法不同,您可能需要重写触发器和存储过程。

如果您知道危险并且可以接受丢失数据,您可以尝试以下 xtrabackup 方法:

  1. 在旧服务器上安装 xtrabackup (http://www.percona.com/software/percona-xtrabackup)
  2. 从 xtrabackup 获取完整且一致的备份(阅读文档)
  3. 关闭新服务器上的 mysql
  4. 将备份从 xtrabackup 复制到新服务器
  5. 再次启动mysql,升级表可能需要一段时间

我以前在 mysql 服务器版本上做过这个,但这是不可靠的,你很可能会得到不可靠或损坏的数据。风险自负。

【讨论】:

    猜你喜欢
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    相关资源
    最近更新 更多