溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql遇到不小心誤刪表怎么辦

發(fā)布時間:2021-11-02 09:50:58 來源:億速云 閱讀:1225 作者:小新 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹了mysql遇到不小心誤刪表怎么辦,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

測試環(huán)境:

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.插入數(shù)據(jù)

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找到恢復點

在恢復過程中會出現(xiàn)./bin/mysqlbinlog: unknown variable 'default-character-set=utf8' 錯誤。

只要把配置文件中的注釋掉,不用重啟,因為此時mysqlbinlog會二次調(diào)用配置文件 用完之后還原就好了。

/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

上面發(fā)現(xiàn)恢復過來少了一條語句 沒關系 采用下面

/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 的數(shù)據(jù)的 所以指定到刪除操作的點上面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遇到不小心誤刪表怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI