在另一台机器上恢复 myisam mysql db

在另一台机器上恢复 myisam mysql db

当 mysql 未运行时,我复制了 web db 目录(/var/lib/mysql/data/web/)。我将此目录转移到另一台运行 mysql 的机器上。

web db的东西是基于myisam的。

我正在考虑如何在另一台服务器上恢复此操作。我想到的策略如下。

  1. 将web db的数据目录复制到新服务器。
  2. 在新服务器上,“创建数据库网站”,在 /var/lib/mysql/data 中创建一个目录
  3. 将步骤中的所有文件复制到 2 中创建的新目录。
  4. 反弹mysql

我的问题:如何处理这个新数据库的information_schema?

答案1

在提出这个问题六年后,我必须将一个 8000 万行 MYISAM 表复制到备份数据库(它使用了整个数据库 80%的磁盘空间)。

我从夜间备份中取出 .MYI、.MYD 和 .FRM 文件,并将它们复制到新运行数据库的文件夹中。information_schema 几乎立即更新,所有表操作都按预期工作(即索引和其他内容都正确)。
我将在将它们送入安静退休状态之前对它们运行 CHECK TABLE 和 OPTIMISE TABLE,但这种备份方法很轻松。

答案2

information_schema 是保存有关所有其他数据库的信息的信息数据库。它是一个内置虚拟数据库,其唯一目的是提供有关数据库系统本身的信息。MySQL 服务器会自动填充 information_schema 中的表。

参考: http://kb.siteground.com/article/What_is_the_information_schema_database.html

因此,如果只有 myisam 表,只要 mysql 版本相同,您就可以复制/移动数据库。

答案3

在源机器上:

mysqldump -q -u username -p database > database.sql

将 database.sql 传输到目标机器并执行以下操作:

mysql -u username -p database < database.sql

相关内容