将旧数据库引入 MySQL 吗?

将旧数据库引入 MySQL 吗?

好的,所以当 mysql 前段时间更新时,它坏了。它根本无法启动。所以我尝试修复它,但没有成功。

我最终放弃了,将 /var/lib/mysql 下的所有目录和文件复制到安全位置,apt-get purge mysql,然后 apt-get install mysql。

因此服务器正在运行,但是就我的生命而言,我似乎无法将旧数据库恢复为可用形式。

我确实通过从我的 mysql/backup 位置复制 gallery3 目录获得了我的 gallery3 数据库。但我的实际 gallery3 安装无法与其通信。:/

可能存在权限问题,但是我对 SQL 确实一无所知。

任何帮助,将不胜感激。

答案1

这样你就无法恢复数据库了。如果你的旧 MySQL 版本与你现在使用的版本完全相同,那么它可能会起作用,但前提是你将当前的 /var/lib/mysql 移动到 /var/lib/mysql.old 之类的位置,然后移动全部旧备份 /var/lib/mysql 的内容(包括所有子目录)现在都备份到 /var/lib/mysql。

您的问题是,您只复制了包含数据的文件的原始数据,但并没有真正备份逻辑。看看,如果创建了像 gallery3 这样的数据库,它会将某些行和数据插入到 MySQL DB 本身的数据字典中以及“mysql”主架构中。因此,仅复制包含数据文件的目录是行不通的,因为新 MySQL 设置中缺少指向这些数据文件的链接(我们称之为链接)。

此外,如果您使用默认数据库类型“innodb”运行旧的 MySQL 安装,并且没有备份 /var/lib/mysql 中的 ibdata1 和 ib_logfiles0/1 文件,那么您的数据肯定会丢失,因为 InnoDB 表完全存储在 InnoDB 表空间文件(ibdata1)中,并且只有少量元数据存储在子目录中的文件中。

在出现如此大的问题之前,最好的简单备份方法是mysqldump将数据库(又称架构)复制到 .sql 文件中并重新插入。这称为“逻辑”备份(而不是物理备份),因为它会转储逻辑上重建数据库架构所需的所有信息,使其恢复到以前的样子。不建议进行物理备份(除非您确切知道自己在做什么以及涉及哪些风险)。

希望有点帮助

相关内容