文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql遇到不小心误删表怎么办

2024-04-02 19:55

关注

这篇文章主要介绍了mysql遇到不小心误删表怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

测试环境:

5.6.33 和 centos6.5

源码安装库一:

yum install "@development tools" cmake ncurses-devel

yum install make gcc-c++ cmake bison-devel  ncurses-devel

Wget http://101.110.118.23/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33.tar.gz

解压

tar xf mysql-5.6.33.tar.gz

编译

Cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data

make

make install

授权

Chown mysql:mysql /usr/local/mysql -R

Chown mysql:mysql /data/mysql/data -R

建立配置文件

[root@localhost data]# vim /etc/my.cnf

[client]

port=3306

socket=/var/lib/mysql/mysql.sock

default-character-set = utf8

[mysqld]

port=3306

basedir=/usr/local/mysql

datadir=/data/mysql/data

socket=/var/lib/mysql/mysql.sock

user=mysql

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

初始化

/usr/local/mysql/scripts/mysql_install_db  --basedir=-/usr/local/mysql -user=mysql --ldata=/data/mysql/data

也可以写成

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf

启动:

/usr/local/mysql/bin/mysqld_safe  --defaults-file=/etc/my.cnf

进库建立测试库文件

1.修改/etc/my.cnf  添加开启的二进制日志

log-bin=logbin          

2重启服务

3.建库

create database test default character set utf8;

4.建表

create table a (id int(4),name char(10)) engine=innodb;

5.插入数据

insert into a values(1,“t”)    插入N条。

6.删除

delete from emp;

7.启动第二个库

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/myserver.cnf

8.查看binlog找到恢复点

在恢复过程中会出现./bin/mysqlbinlog: unknown variable 'default-character-set=utf8' 错误。

只要把配置文件中的注释掉,不用重启,因为此时mysqlbinlog会二次调用配置文件 用完之后还原就好了。

/usr/local/mysql/bin/mysqlbinlog logbin.000002 >test2.log

less test2.log

mysql遇到不小心误删表怎么办

9.恢复到第二个库中

/usr/local/mysql3308/bin/mysqlbinlog /data/mysql/data/logbin.000002 --stop-position=735 |/usr/local/mysql3308/bin/mysql -uroot -h227.0.0.1

上面发现恢复过来少了一条语句 没关系 采用下面

/usr/local/mysql3308/bin/mysqlbinlog /data/mysql/data/logbin.000002 --start-position=735 --stop-position=868 |/usr/local/mysql3308/bin/mysql -uroot -h227.0.0.1

上面注意了:恢复到点735 以及837是会丢失第三条4,t 的数据的 所以指定到删除操作的点上面868.

直接恢复

./bin/mysqlbinlog /data/mysql/data/logbin.000002  --stop-position=868 |/usr/local/mysql3308/bin/mysql -uroot -h227.0.0.1  -P3308

10.恢复到主库:

1、直接恢复

/usr/local/mysql/bin/mysqlbinlog --stop-position=868|/usr/local/mysql/bin/mysql -uroot -h227.0.0.1

2、把恢复的表单复制到相应的库文件下

未做

3、把恢复好的库导出,再复制重命名原来的库 ,恢复好的库导入之后再删之前那的已误操作的库

导出表

/usr/local/mysql3308/bin/mysqldump -h227.0.0.1 -uroot -P3308 test a --default-character-set=utf8  >a.sql

原表复制 ---可能会很大 建议原表rename

create table a_bak as select * from a;

原表rename

rename table  a to b;

导入表

/usr/local/mysql/bin/mysql -uroot -h227.0.0.1  <a.sql</a.sql<>

感谢你能够认真阅读完这篇文章,希望小编分享的“mysql遇到不小心误删表怎么办”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯