温馨提示×

ubuntu mysql怎么恢复数据

小樊
47
2026-10-01 04:49:05
栏目: 云计算

在 Ubuntu 上恢复 MySQL 数据,常见场景有几种,下面按最常见情况给你讲清楚,你可以对号入座。


一、如果你有 SQL 备份文件(最推荐)

1. 准备环境

先确认 MySQL 已启动:

sudo systemctl status mysql

2. 恢复整个数据库

mysql -u root -p 数据库名 < /path/backup.sql

示例:

mysql -u root -p testdb < /home/ubuntu/testdb.sql

3. 如果数据库不存在

先创建:

mysql -u root -p -e "CREATE DATABASE testdb;"

二、如果你有 mysqldump 压缩备份

gunzip < backup.sql.gz | mysql -u root -p 数据库名

或:

zcat backup.sql.gz | mysql -u root -p 数据库名

三、如果你有 物理数据文件(/var/lib/mysql)

⚠️ 风险较高,仅适合同版本 MySQL

步骤:

  1. 停止 MySQL
sudo systemctl stop mysql
  1. 备份当前数据
sudo cp -r /var/lib/mysql /var/lib/mysql_bak
  1. 拷贝旧数据
sudo cp -r /path/old_mysql/* /var/lib/mysql/
  1. 修改权限
sudo chown -R mysql:mysql /var/lib/mysql
  1. 启动 MySQL
sudo systemctl start mysql

四、使用 binlog 恢复(误删数据)

1. 查看 binlog

mysql -u root -p -e "SHOW BINARY LOGS;"

2. 恢复指定时间段

mysqlbinlog --start-datetime="2024-01-01 10:00:00" \
--stop-datetime="2024-01-01 12:00:00" \
/var/lib/mysql/mysql-bin.000001 | mysql -u root -p

五、使用 phpMyAdmin(图形化)

  1. 登录 phpMyAdmin
  2. 选择数据库
  3. 点击 导入
  4. 上传 .sql 文件

六、常见错误排查

1. 权限错误

ERROR 1045 (28000): Access denied

→ 检查用户名密码,或加 sudo

2. 版本不兼容

→ 物理恢复必须 MySQL 大版本一致


七、推荐日常备份命令

mysqldump -u root -p --all-databases > all.sql

或单库:

mysqldump -u root -p dbname > dbname.sql

如果你能告诉我:

  • ✅ 是 误删表 / 误删库
  • ✅ 有没有备份
  • ✅ MySQL 版本(mysql -V)

我可以给你更精确的恢复方案。

0 踩