在Ubuntu系统中恢复MySQL误删除数据,可按以下方法操作,优先使用备份或日志恢复,无备份时谨慎尝试工具恢复:
.sql备份文件,用mysql命令导入:mysql -u root -p database_name < /path/to/backup.sql
/var/lib/mysql/),停止MySQL服务后复制文件并授权:sudo systemctl stop mysql
sudo cp -r /path/to/backup/* /var/lib/mysql/
sudo chown -R mysql:mysql /var/lib/mysql/
sudo systemctl start mysql
SHOW VARIABLES LIKE 'log_bin';,返回ON则可用。mysqlbinlog查看日志,找到误删DELETE语句的时间点或位置点:mysqlbinlog --base64-output=decode-rows -v /var/lib/mysql/mysql-bin.000001
mysqlbinlog --start-datetime="2025-08-01 10:00:00" --stop-datetime="2025-08-01 10:30:00" /var/lib/mysql/mysql-bin.000001 > recovery.sql
mysqlbinlog --stop-position=12345 /var/lib/mysql/mysql-bin.000001 > recovery.sql
recovery.sql删除误删语句,执行导入:mysql -u root -p < recovery.sql
extundelete恢复未被覆盖的.ibd文件(需安装):sudo apt-get install extundelete
sudo extundelete /dev/sda1 --restore-file /var/lib/mysql/db_name/table_name.ibd
登录MySQL验证数据完整性:
mysql -u root -p
USE database_name;
SHOW TABLES;
SELECT * FROM table_name;
mysqldump定期备份数据库并记录binlog位置,避免依赖单一恢复方式。/etc/mysql/my.cnf中配置log-bin=mysql-bin并重启MySQL,确保后续可追溯操作。引用标注: