在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,确保后续可追溯操作。引用标注: