我把我们的生产服务器误认为是临时服务器,并意外卸载了 MySql。我的 /var/lib/mysql 文件夹仍然完好无损。我的服务器是 ubuntu 16
这是我进行的卸载过程。
sudo apt purge mysql*
我该如何恢复数据库。请帮忙
答案1
在临时环境中卸载 MySQL。首先在那里测试该过程。
备份数据。如果安装脚本删除了现有数据库,我会感到非常惊讶。但无论如何,还是要备份一份,以防万一。
安装 MySQL。
将来,当您进行测试时,删除对生产的访问权限。关闭所有会话。或许从中删除其密钥ssh-agent
。
答案2
我过去曾执行过类似的程序来测试恢复的 MySQL 数据库是否正常工作(从故障驱动器恢复后)。这是在 Windows 上进行的,但应该是类似的想法。确保您有数据库文件夹的额外副本,以防出现问题。
您需要安装相同版本的 MySQL 服务器。按版本下载在此处 -https://downloads.mysql.com/archives/installer/
我不确定如果安装程序在所选数据目录中找到现有数据库文件时会做什么。但您可以指定不同的数据目录并完成安装。检查 MySQL 是否正常运行并运行 SHOW DATABASES 之类的命令。
一旦您拥有一个正常运行的 MySQL 服务器,您就可以交换数据库文件。
我按照这里的答案中的说明进行操作 -https://stackoverflow.com/a/12098668/620054
要交换数据库文件-
- 停止 MySQL 服务。
- 将数据目录中的所有 ib* 文件重命名为在开头加上“FRESHINSTALL”或类似名称。
- 将文件从原始数据目录(ibdata1、ib_logfile0、ib_logfile1、ib_buffer_pool(如果存在))以及数据库的任何子目录(包含 frm 文件)复制到新安装的数据目录中。不要复制系统数据库 mysql 和 performance_schema 的目录。仅复制您的数据库。
- 检查 ib_logfile0 文件的大小。如果它大于默认值(我认为 48 MB 是 48M),则需要调整 MySQL 配置以设置
innodb_log_file_size=[actual size of iblogfile0]
- 使用以下命令在恢复模式下运行 MySQL:(
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server x.x\my.ini" --standalone --console --innodb_force_recovery=6
根据需要更改配置文件的路径) - 启动 MySQL 服务。
- 检查您的数据库是否出现并运行一些测试查询。
如果一切正常,您将需要进行备份或转储,以便可以清除所有内容、进行全新安装并进行适当的还原。