一,mysql有以下幾種日志:
? ? ? ? ? 錯誤日志:? ? -log-err
? ? ? ? ? 查詢?nèi)罩荆? ? -log
? ? ? ? ? 慢查詢?nèi)罩?? -log-slow-queries
? ? ? ? ? 更新日志:? ? -log-update
? ? ? ? ? 二進(jìn)制日志: -log-bin
是否啟用了日志
? ? ? ? mysql>show variables like 'log_%';
查看當(dāng)前的日志
mysql> show master status;
顯示二進(jìn)制日志數(shù)目
mysql> show master logs;
看二進(jìn)制日志文件用mysqlbinlog(找到文件用vim直接打開)
shell>mysqlbinlog mail-bin.000001
或者shell>mysqlbinlog mail-bin.000001 | tail
導(dǎo)出mysql日志? ?/usr/bin/mysqlbinlog? ?--start-datetime='開始時間' --stop-datetime='結(jié)束時間' binlog日志文件的名稱 > /tmp/mysql.log
本地虛擬機mysql日志位置 /usr/local/mysql/data
本地mysqlbinlog位置 /var/log/mysql/
二.開啟binlog日志
? ? 在my.cnf(本地位置在etc/mysql/my.cnf)文件中打開log-bin即可
三.查看某個binlog日志內(nèi)容讼昆,常用有兩種方式
? ? 1.使用mysqlbinlog自帶查看命令法:
? ? ? 注:binlog是二進(jìn)制文件,普通文件查看器cat more vi等都無法打開恼琼,必須使用自帶的 mysqlbinlog 命令查看
? ? ? ? ? ? binlog日志與數(shù)據(jù)庫文件在同目錄中(我的環(huán)境配置安裝是選擇在/usr/local/mysql/data中)
? ? ? ? ? ? 在MySQL5.5以下版本使用mysqlbinlog命令時如果報錯昌犹,就加上 “--no-defaults”選項
? ? ? 2.上面這種辦法讀取出binlog日志的全文內(nèi)容較多细移,不容易分辨查看pos點信息,這里介紹一種更為方便的查詢命令:
? ? ? ? mysql> show binlog events [IN 'log_name'] [FROMpos] [LIMIT [offset,] row_count];
? 選項解析:IN'log_name'指定要查詢的binlog文件名(不指定就是第一個binlog文件) ?FROMpos指定從哪個pos起始點開始查起(不指定就是從整個文件首個pos點開始算)
? ?LIMIT [offset,] 偏移量(不指定就是0)
? ? row_count? ? ? 查詢總條數(shù)(不指定就是所有行)
四.其他命令
? ? A.查詢第一個(最早)的binlog日志:mysql>show binlog events\G;
? ? B.指定查詢mysql-bin.000021這個文件:mysql> show binlog events in 'mysql-bin.000021'\G;
? ? C.指定查詢mysql-bin.000021 這個文件,從pos點:8224開始查起:mysql> show binlog events in 'mysql-bin.000021' from 8224\G;
? ? ?D.指定查詢mysql-bin.000021 這個文件岂贩,從pos點:8224開始查起,查詢10條mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 10\G;
? ? ? E.指定查詢mysql-bin.000021 這個文件巷波,從pos點:8224開始查起萎津,偏移2行,查詢10條mysql> show binlog events in 'mysql-bin.000021' from 8224 limit 2,10\G;
五.利用binlog恢復(fù)數(shù)據(jù)庫
? ? 具體詳見: ?
http://www.cnblogs.com/martinzhang/p/3454358.html