下午好。
我的 Debian 9 服务器遇到了导致操作系统无法访问的问题,我设法为我的项目提取了所有原始数据库文件(/var/lib/mysql),但不幸的是引擎类型设置为 InnoDB。
我是否有机会以某种方式恢复数据库?谢谢。
答案1
如果您拥有全部内容/var/lib/mysql
,那么您可能应该尝试/var/lib/mysql
用您拥有的内容完全替换当前内容。
根据您的 mariadb/mysql 选项,部分或全部 innodb 数据是全局的,并存储在/var/lib/mysql/ibdata1
、 和/var/lib/mysql/ib_logfile
文件中。因此,仅恢复/var/lib/mysql/databasename/table*
通常不足以恢复 innodb 数据。
如果您已经恢复或开始使用该目录,则可以暂时将该目录的当前内容移至其他位置。或者更好的方法是,在虚拟机或其他设备中临时启动一台新机器,您可以在其中测试恢复整个/var/lib/mysql
目录而不中断任何操作。
放入旧数据后,/var/lib/mysql
您应该能够启动服务器并提取数据。您可能需要使用绕过权限的选项启动 mariadb,具体取决于您的权限锁定程度。不过我不会继续使用它,而是建议您使用 mysqldump 或您最喜欢的工具转储数据库,然后将其重新导入到您的生产数据库中。
当您将东西移回时,请确保 mysql/mariadb 服务帐户(通常是 mysql/mysql)拥有所有文件并具有读写权限。