在新的項目不斷迭代版本的時候我們有時候需要經常修改數據庫的表結構和表數據,這時候經常用到source xxx.sql 命令來導入新建的表和數據(前提是進入sql命令行~ 如下圖),但是在使用這個命令的時候我們要注意:儘量使用先前版本不存在的sql文件包含的表來導入。比如原始數據庫中沒有table_a 這個數據表,我們可以用source table_a.sql文件來進行導入,但是如果原始數據庫中有table_a.sql 的話,就最好不要用source table_a.sql 來進行導入了。
那萬一使用上面的source xxx.sql,導致數據有問題,想恢復到之前的狀態怎麼辦? 下面我們將使用mysql中的二進制日誌
1.先看看是否打開了二進制日誌, show variables like 'log_bin';
我們看到上面是沒有打開的,下面我們找到mysql的配置文件,Linux中在/etc/my.cnf Windows的話就是my.ini 中,加入下面的兩句(如下圖):
log-bin=mysql
binlog-do-db=數據庫名(這句話可要可不要,指定爲相應的數據庫來插相應的日誌)
加入以後退出,重啓mysql服務就可以了,linux中是service mysqld restart
然後我們每一次的操作都會記錄在二進制日誌文件中,到底這個二進制文件在哪裏呢? 我們可以查看當前數據庫的狀態 show master status;
這裏我們可以看到有一個mysql.000001 中,找到它,打開可以看到(之前我做了一次插入數據的操作):
這樣我們可以通過後續的命令來進行恢復了。
參考:jumethh的專欄