mysql遇到不小心误删表怎么做
发布时间:2021-12-29 00:21:42 所属栏目:MySql教程 来源:互联网
导读:这篇文章主要介绍了mysql遇到不小心误删表怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 测试环境: 5.6.33 和 centos6.5 源码安装库一: yum install @development tools cmake
这篇文章主要介绍了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遇到不小心误删表怎么办”这篇文章对大家有帮助。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |