我的 root 访问 Linux 服务器崩溃了,我无法通过 SSH 进入它或与其交互。但是,我可以告诉在线控制台进行网络启动到“救援系统”,这样我就可以访问服务器上的文件。
这意味着我只能获取数据库的原始文件夹,而无法执行 SQL 转储。
如果我只是复制数据库文件夹,则不起作用,因为在我的新工作服务器上,它显示某些表不可用。显然这是因为 InnoDB,因此我还应该复制 ibdata1、ib_logfile0 和 ib_logifle1 文件。
我可以用旧服务器的 ib* 文件覆盖新闻服务器上的 ib* 文件吗?有没有什么方法可以仅通过复制文件来传输此数据库?
答案1
如果您将ib*
文件和所有子目录/var/lib/mysql
(或任何 MySQL 数据目录)连同源文件一起my.cnf
复制/etc
到新服务器,它应该会像什么都没发生一样启动。除此之外,没有其他方法可以传输 InnoDB 表或数据库。即使使用表 1. innodb_file_per_table选项,InnoDB 仍然将元数据存储在中央数据库文件中,因此如果没有它,您就无法进行恢复。