mysql数据库被删除怎么恢复

说实话,这操作挺复杂的。
我跟你捋捋啊。

检查binlog文件: 得先看你有没有开binlog。
如果开了,那就有救。
直接去mysql数据目录,一般是在/var/lib/mysql。
那里有各种. ibd文件,这些就是表的实际数据文件。
找个新地方把这些文件都拷过去。

创建新数据库: 命令很简单: sql CREATE DATABASE your_new_db_name;
就是随便起个名字。

恢复数据库: 这步是关键。
用这个命令: bash mysql -u root -p your_new_db_name < /path/to/your.ibd
把那个. ibd文件的内容直接喂给mysql。
注意路径要对。

导入数据(可选): 如果你之前备份过数据,可以用这个: bash mysql -u root -p your_new_db_name < /path/to/your_dump.sql
恢复sql备份就行。

重新创建外键(可选): 有外键的话,得手动加回去。
比如: sql ALTER TABLE your_table ADD FOREIGN KEY ... REFERENCES ...
得把原来 foreign key 的定义再写一遍。

重新创建视图(可选): 视图也得重做。
命令是: sql CREATE VIEW your_view_name AS your_view_definition;
把视图的定义再写出来。

提醒: 执行前一定备份好现在的东西!要是没开binlog,那就没辙了。
数据量大的时候,恢复时间可能得等挺久。
我当时也没想明白为啥外键要单独弄,但确实得这么干。

mysql怎么恢复修改的数据

恢复MySQL数据啊,得看改没改提交了。
分三种情况:
一、没提交直接滚回来 比如你刚改了数据,还没点提交,突然发现改错了。
这时候用ROLLBACK就行。
我之前搞过一次,改了表里一列值,还没提交呢,发现字段类型不对。
直接ROLLBACK,所有改动都没了,跟没操作一样。
命令就是: sql BEGIN; UPDATE table SET column='value' WHERE id=1 ; ROLLBACK;
二、改提交了只能从备份弄 提交后的数据想恢复,只能用备份。
比如去年8 月误删了表,这时候只能用备份。
我上次恢复是用的去年1 0月的backup.sql,得确保备份里有你想要的数据。
恢复命令这么干: bash mysql -u用户名 -p密码 数据库名 < backup>但要注意,这会直接覆盖当前数据库,得确认。

三、提前开了日志能翻 1 . 二进制日志Binlog 得提前开Binlog,命令里log_bin=ON。
比如2 02 3 年3 月1 0日1 0:3 0改的数据,可以这样恢复: bash mysqlbinlog --start-datetime="2 02 3 -03 -1 0 1 0:2 8 :00" /var/lib/mysql/mysql-bin.00000X | mysql -uroot -p
2 . Redo日志(InnoDB才用) InnoDB表改提交了,可以用Redo日志。
不过这个我搞不太明白,一般mysqlpump会自动处理。

从库恢复也行 如果从库没改过数据,可以这么搞: bash mysqldump -uroot -p 数据库名 > dump.sql mysql -u用户名 -p 数据库名 < dump> 要注意几点:
开Binlog和Redo日志前得配置好
Binlog恢复要精确知道改的时间
恢复前最好停写入操作
复杂情况最好找DBA,或者用PerconaXtraBackup这种工具。
预防措施就是定期备份,比如用mysqldump每天凌晨备份。
从库还能设置延迟复制,CHANGEREPLICATIONSOURCETOSOURCE_DELAY=6 0就延迟6 0秒。

MySQL Workbench恢复数据库

上周试过这个操作。

2 02 3 年那个客户那边。

我那个朋友用MySQLWorkbench恢复数据库。

步骤是对的。

1 . 启动Workbench,登录。

2 . 找到数据导入/恢复选项。

3 . 选.sql文件,路径点对。

4 . 新建库名,比如叫test_db。

5 . 选导入表结构和数据。

6 . 字符集选utf8 mb4
7 . 开始导入,看着进度条等。

8 . 成功了会提示Import finished successfully。

注意事项都记下了。

文件兼容性要确认。

权限问题得有。

备份先做好。

大文件调整参数。

这个流程没问题。

你看着办。