当 mysql 未运行时,我已经复制了 web db 目录(/var/lib/mysql/data/web/)。我将此目录转移到另一台运行 mysql 的机器上。
web db 的东西是基于 myisam 的。
我正在考虑如何在不同的服务器上恢复它。我想到的策略如下。
- 将 web db 的数据目录复制到新服务器。
- 在新服务器上,'create database web',它在 /var/lib/mysql/data 中创建一个目录
- 将步骤中的所有文件复制到 2 中创建的新目录。
- 弹跳mysql
我的问题:如何处理这个新数据库的 information_schema?
问这个问题六年后,我不得不将一个 8000 万行的 MYISAM 表复制到一个备份数据库(它使用了我们整个数据库 80% 的磁盘空间)。
我从每晚备份中取出 .MYI、.MYD 和 .FRM 文件,并将它们复制到新运行数据库的文件夹中。information_schema 几乎立即更新,所有表操作都按预期工作(即索引和内容正确)。
在让他们安静地退休之前,我会在他们身上运行 CHECK TABLE 和 OPTIMIZE TABLE,但是这种备份方法很轻松。
information_schema 是保存所有其他数据库信息的信息数据库。它是一个内置的虚拟数据库,其唯一目的是提供有关数据库系统本身的信息。MySQL 服务器自动填充 information_schema 中的表。
参考: http: //kb.siteground.com/article/What_is_the_information_schema_database.html
因此,如果只有 myisam 表,只要 mysql 版本相同,您就可以复制/移动数据库。
在您的源机器上:
将 database.sql 传输到目标机器并执行以下操作: