这篇文章主要介绍了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 testdefault character set utf8;
4.建表
create table a(id int(4),name char(10)) engine=innodb;
5.插入数据
insert into avalues(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
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/m免费主机域名ysql3308/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 感谢你能够认真阅读完这篇文章,希望小编分享的“mysql遇到不小心误删表怎么办”这篇文章对大家有帮助,同时也希望大家多多支持云技术,关注云技术行业资讯频道,更多相关知识等着你来学习!
这篇文章将为大家详细讲解有关mysql5.7怎么快速定位IO瓶颈,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这免费主机域名篇文章后可以有所收获。环境关于IO的问题,免费主机域名大家能想到的监控工具有哪些iostatdstatiotop没错,以上都…