我有两台旧的 mysql 服务器,现在我买了一台新服务器,我想将文件迁移到这台服务器,我的问题是,如果我将所有这些文件复制到新服务器,mysql 是否会识别这些文件,或者我是否必须更改一些选项。两台服务器都是 MyISAM,新服务器也是如此。
更新:例如:
server one:
table1
table2
table3
server two:
table4
table5
table6
new server:
table1
table2
table3
table4
table5
table6
答案1
如果所有表都是 MyISAM,那我就有好消息了!
尽管 mysqldump 可以工作并且在按位上更安全和保守,但完全不需要。
每个 MyISAM 表由三个文件组成:.frm、.MYD、.MYI。
您应该能够简单地将表移动到新的数据库文件夹中。
information_schema 数据库将自动检测这三个文件的存在并进行更新(具体来说就是更新 information_schema.schemata)。以下是可能发生的情况的证明:
当 MySQL 仍在运行时,执行以下操作
cd /var/lib/mysql
mkdir thisisatest
mysql
一旦你跑显示数据库;您应该看到 thisisatest 作为一个数据库出现。这是因为 information_schema 自动更新了自身并将 /var/lib/mysql/thisisatest 注册为数据库。MyISAM 表将以相同的方式注册自身(具体来说就是更新 information_schema.tables)。警告:InnoDB 无法实现这一点!
答案2
使用 导出表mysqldump
。确保过滤掉不需要导入或覆盖的表/数据库。使用 之类的命令导入mysql < import.sql
。