Ubuntu LNMP环境中MySQL数据库恢复步骤
sudo systemctl status mysql # 查看服务状态
sudo systemctl start mysql # 若未运行则启动
mysqldump生成的.sql或.sql.gz文件),并存储在可访问的路径(如/home/user/backups/)。若备份的是单个数据库的.sql文件(如mydatabase_backup.sql),执行以下命令:
mysql -u root -p mydatabase < /path/to/mydatabase_backup.sql
-u root指定管理员账号(需替换为实际用户名);-p提示输入密码(不要在命令中直接写密码,避免泄露);mydatabase为目标数据库名(需提前创建,可通过mysql -u root -p -e "CREATE DATABASE mydatabase;"创建);/path/to/...为备份文件路径。若备份文件是压缩的(如mydatabase_backup.sql.gz),需先解压再恢复:
gunzip < /path/to/mydatabase_backup.sql.gz | mysql -u root -p mydatabase
gunzip解压文件并通过管道(|)直接将内容导入MySQL,无需生成中间.sql文件。若备份的是所有数据库的.sql文件(如full_backup.sql,通常包含--all-databases参数生成),执行:
mysql -u root -p < /path/to/full_backup.sql
若开启了二进制日志(log_bin参数开启),可通过mysqlbinlog工具恢复到某个时间点的状态(如误删除数据后):
# 1. 查找需恢复的二进制日志文件及位置
mysqlbinlog --start-datetime="2025-10-12 10:00:00" --stop-datetime="2025-10-12 11:00:00" /var/log/mysql/mysql-bin.000001 > recovery.sql
# 2. 执行恢复
mysql -u root -p < recovery.sql
--start-datetime和--stop-datetime指定恢复的时间范围(需根据业务需求调整);mysql-bin.000001为二进制日志文件(可通过ls /var/log/mysql/查找最新文件)。mysql -u root -p
USE mydatabase; # 切换至目标数据库
SHOW TABLES; # 查看表是否存在
SELECT * FROM tb_table LIMIT 10; # 检查数据是否恢复
chmod 600 /path/to/backup.sql),避免未授权访问。--single-transaction参数(适用于InnoDB引擎),确保备份数据的一致性:mysqldump -u root -p --single-transaction --all-databases > full_backup.sql
通过以上步骤,可在Ubuntu LNMP环境中快速恢复MySQL数据库,保障数据安全。