加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2021-12-29 14:23:57 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍了mysql遇到不小心误删表怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 测试环境: 5.6.33 和 centos6.5 源码安装库一: yum install @development tools cma
这篇文章主要介绍了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遇到不小心误删表怎么办”这篇文章对大家有帮助。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读