mysql常見的日志類型有五種:錯誤日志、二進(jìn)制日志、查詢?nèi)罩尽⒙槿罩竞椭欣^日志.
一、錯誤日志,錯誤日志包含四類信息:
(1) 服務(wù)器啟動和關(guān)閉進(jìn)程過程中的信息;
(2) 服務(wù)器運(yùn)行過程中的錯誤信息;
(3) 事件調(diào)度器運(yùn)行一個事件時產(chǎn)生的信息;
(4) 在從服務(wù)器上啟動從服務(wù)器進(jìn)程時產(chǎn)生的信息。
在mysql中查看錯誤日志的存放路徑,如下:
# mysql -u root -p 123456
mysql> SHOW VARIABLES LIKE '%err%';
查看警告信息的狀態(tài):mysql> SHOW VARIABLES LIKE 'log%';
如果結(jié)果中“log_warnings“的值為1,說明警告信息也寫到了錯誤日志中,為0,則說明沒寫到錯誤日志中.
My.ini配置信息,代碼如下:
- #Enter a name for the error log file. Otherwise a default name will be used.
- #log-error=d:/mysql_log_err.txt
二、二進(jìn)制日志,二進(jìn)制日志有兩種功能:
(1) 做即時點(diǎn)恢復(fù)(基于時間點(diǎn)恢復(fù)的)
(2) 復(fù)制(將主服務(wù)器發(fā)生的任何改變復(fù)制到從服務(wù)器上保證數(shù)據(jù)一致)
二進(jìn)制日志存儲的信息是每一個明確或潛在的有可能使數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生改變的SQL語句,查看是否開啟二進(jìn)制日志,代碼如下:
mysql> SHOW VARIABLES LIKE '%bin%';
如果結(jié)果中“log_bin”的值為“ON”則開啟了二進(jìn)制日志;為“OFF”則沒有開啟二進(jìn)制日志.
查看有哪些二進(jìn)制日志:mysql> SHOW BINARY LOGS;
說明:由于二進(jìn)制日志文件不是單獨(dú)的一個,而是多個,所以此時你看到的結(jié)果可能不止一個,要想看當(dāng)前數(shù)據(jù)庫正在使用的二進(jìn)制日志文件是哪一個,用下面命令:
mysql> SHOW MASTER STATUS;
二進(jìn)制日志有三種格式:基于語句的,記錄的是SQL語句,基于行的,記錄的是SQL語句執(zhí)行的結(jié)果,混合的,代碼如下:
mysql> SHOW BINLOG EVENTS IN 'binlog_name' FROM 107;
查看二進(jìn)制日志從某個位置發(fā)生改變的情況.
說明:由于二進(jìn)制日志的文件不是文本文件,所以一般的查看命令并不能查看二進(jìn)制日志文件內(nèi)容,要想查看二進(jìn)制日志文件內(nèi)容,就需要一個特殊的命令:mysqlbinlog,代碼如下:
# mysqlbinlog 專門查看二進(jìn)制日志文件的內(nèi)容
--start-position 起始位置
--stop-position 結(jié)束位置
--start-datetime 起始時間
--stop-datetime 結(jié)束時間
例:# mysqlbinlog --start-position=‘107’ mysql-bin.00002
例:# mysqlbinlog --start-position=‘107’ --stop-position=‘381’
mysql-bin.00002
例:# mysqlbinlog --start-datetime=‘2012-04-08 10:00:00’ --stop-
datetime=‘2012-04-08 20:00:01’ mysql-bin.00002
My.ini配置信息,代碼如下:
#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=d:/mysql_log_bin
三、查詢?nèi)罩?查看查詢?nèi)罩緺顟B(tài),代碼如下:
mysql> SHOW VARIABLES LIKE 'general_log';
如果結(jié)果中的“general_log”的值為“ON“,則是開啟了查詢?nèi)罩?如果為”OFF“,則沒有開啟查詢?nèi)罩?指定查詢?nèi)罩镜穆窂?只要在general_log_file= 后面寫上路徑即可.
My.ini配置信息,代碼如下:
#Enter a name for the query log file. Otherwise a default name will be used.
#log=d:/mysql_log.txt
四、慢查日志,查看慢查日志狀態(tài)看狀態(tài)是否開啟,代碼如下:
mysql> SHOW VARIABLES LIKE 'SLOW%';
如果"slow_query_log"的值為”ON“,則開啟了慢查詢?nèi)罩荆蝗绻麨?rdquo;OFF“,則沒有開啟慢查詢?nèi)罩?
說明:其中查詢?nèi)罩竞吐槿罩径伎捎涗浀奖砝锘蛭募铮部梢远叨加杏涗洝?/p>
My.ini配置信息,代碼如下:
#Enter a name for the query log file. Otherwise a default name will be used.
#log=d:/mysql_log.txt
五、中繼日志
在mysql服務(wù)器中從架構(gòu)中的從服務(wù)器上用到的,當(dāng)從服務(wù)器想要和主服務(wù)器進(jìn)行數(shù)據(jù)的同步時,從服務(wù)器將主服務(wù)器的二進(jìn)制日志文件拷貝到己的主機(jī)上放在中繼日志中,然后調(diào)用SQL線程按照拷中繼日志文件中的二進(jìn)制日志文件執(zhí)行以便就可達(dá)到數(shù)據(jù)的同步。
開啟的方法,只在從服務(wù)器上開啟,配置mysql的主配置文件:
relay-log= 指定中繼日志的位置和名字
relay-log-index= 指定中繼日志的名字的索引文件的位置和名字
My.ini配置信息,代碼如下:
#Enter a name for the update log file. Otherwise a default name will be used. //Vevb.com
#log-update=d:/mysql_log_update.txt
新聞熱點(diǎn)
疑難解答
圖片精選