將log-bin選項加入到my.cnf/my.ini中的[mysqld]組中
沿河ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
log-bin=dir/filename 生成的文件為filename.number 如log.000001,log000002
記得配置完要重新啟動數(shù)據(jù)庫服務喲
mysql命令行下怎樣實現(xiàn)數(shù)據(jù)的回滾操作
在MySQL有時執(zhí)行了錯誤的update或者delete時導致大量數(shù)據(jù)錯誤恢復的辦法。執(zhí)行時沒有開啟事務,也沒有對數(shù)據(jù)進行。這時就需要使用到sqlbinlog工具。
sqlbinlog需要開啟,具體的打開方法就不說了。
使用sqlbinlog會產生bin文件,恢復就需要用到這些文件。文件中記錄著數(shù)據(jù)庫的所有操作。(此方法的操作是將數(shù)據(jù)庫之前所執(zhí)行的語句重新執(zhí)行一次,以達到恢復效果)
具體步驟:1,先找到bin文件,一般都是在mysql的data文件夾中,結尾以.00000X等形式結束。
2,尋找需要還原的時間點 使用語句 mysqlbinlog 文件名 例(MySQLbinlog xxbin.000001)來查看內容,然后找到對應的具體時間
3,導出sql語句,使用語句 mysqlbinlog 文件名sql文件路徑 例(mysqlbinlog xxxbin,00001a.sql | mysql -u root -p )
如果需要指定時間導出--start--date -stop='' --date='' 來導出指定時間執(zhí)行的語句例(sqlbinlog --start-stop='2015-11-22 10:00:00' xxbin.000001a.sql | mysql -u root -p )這句意思是導出在2015-11-22 10點之前的語句,反之start是導出時間之后的。 start和stop可以同時使用。
如果存在多個bin文件,則按照需要導出。
4,使用mysql將導出的語句執(zhí)行一次。
如何開啟MySQL 5.7.12 的二進制日志
1. 打開/etc下的my.cnf文件
2. 編輯它,添加內容:
log_bin=binary-log #二進制日志的文件名
server_id=1 #必須指定server_id,這是MySQL 5.7.3以后的要求
binlog-do-db=yrld #備份的數(shù)據(jù)庫名,可以是多個
binlog-do-db=website
binlog-do-db=yrldgold
MySQL的日志文件模塊啟動后才會有日志記錄。
開啟日志服務:
在MY.INI里,MYSQLD項下添加log-bin=mysql。
如果只對某個庫進行日志文件記錄,那么再添加binlog-do-db=test,這樣就只記錄test數(shù)據(jù)庫的日志,而放棄其他的。
添加完后,重新啟動MYSQL的服務,日志文件開始工作了.
查看是否啟用了日志命令:mysqlshow variables like 'log_bin';
查看當前的日志命令:mysql show master status;
看二進制日志文件用mysqlbinlog命令:shellmysqlbinlog mail-bin.000001
從概述中我可以看到my.ini配置信息的log-bin沒有指定文件擴展名,這是因為即使你指定上擴展名它也不使用。當mysql創(chuàng)建二進制日志文件時,首先創(chuàng)建一個以“mysql_log_bin”為名稱,以“.index”為后綴的文件;再創(chuàng)建一個以“mysql_log_bin”為名稱,以“.000001”為后綴的文件。當mysql服務重新啟動一次以“.000001”為后綴的文件會增加一個,并且后綴名加1遞增;如果日志長度超過了max_binlog_size的上限(默認是1G)也會創(chuàng)建一個新的日志文件;使用flush logs(mysql命令符)或者執(zhí)行mysqladmin –u –p flush-logs(windows命令提示符)也會創(chuàng)建一個新的日志文件。
既然寫入的都是MySQL二進制數(shù)據(jù),用記事本打開文件是看不到正常數(shù)據(jù)的,那怎么查看呢?
使用BIN目錄下mysqlbinlog命令,如:
Binmysqlbinlog d:/mysql_log/mysql_bin.000001
Binmysqlbinlog d:/mysql_log/mysql_bin.000002
Binmysqlbinlog d:/mysql_log/mysql_bin.000003
Binmysqlbinlog d:/mysql_log/mysql_bin.000004
Binmysqlbinlog d:/mysql_log/mysql_bin.000005
使用SQL語句也可查看mysql創(chuàng)建的二進制的文件目錄:
Mysql show master logs; 查看當前二進制文件狀態(tài):
mysql show master status;
二進制日志開啟方法:
查看系統(tǒng)變量log_bin,如果其值為OFF,表示沒有開啟二進制日志(binary log),如果需要開啟二進制日志
修改my.cnf,在[mysqld]下面增加
log-bin=/data/mysqldb/log/mysql-bin.log
binlog_format = ROW
expire_logs_days=15
server_id = 2
修改完之后重啟MySQL,然后再查看show variables like 'log_bin%'; 這個時候你會發(fā)現(xiàn)log_bin的value值變成了ON