1、首先確認(rèn)你日志是否啟用了mysqlshow variables like 'log_bin'。
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、渭濱ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的渭濱網(wǎng)站制作公司
2、如果啟用了,即ON,那日志文件就在mysql的安裝目錄的data目錄下。
3、怎樣知道當(dāng)前的日志mysql show master status。
4、看二進(jìn)制日志文件用mysqlbinlog,shellmysqlbinlog mail-bin.000001或者shellmysqlbinlog mail-bin.000001 | tail,Windows 下用類(lèi)似的。
MySQL的日志操作:
1、首先,登陸mysql后,執(zhí)行sql語(yǔ)句:show variables like 'log_bin'。
2、#錯(cuò)誤日志log-errol開(kāi)啟方式:在my.ini的[mysqld]選項(xiàng)下:添加代碼:log-error=E:\log-error.txt。
記錄內(nèi)容:主要是記錄啟動(dòng)、運(yùn)行或停止mysqld時(shí)出現(xiàn)的致命性問(wèn)題,都是系統(tǒng)級(jí)的錯(cuò)誤記錄。
3、#查詢?nèi)罩荆簂og,開(kāi)啟方式:在my.ini的[mysqld]選項(xiàng)下:添加代碼:log=E:/mysql_log.txt。
4、#二進(jìn)制日志:log-bin,開(kāi)啟方式:在my.ini的[mysqld]選項(xiàng)下:添加代碼:log-bin=E:/mysql_log_bin,記錄內(nèi)容:主要是記錄所有的更改數(shù)據(jù)的語(yǔ)句,可使用mysqlbinlog命令恢復(fù)數(shù)據(jù)。
1)怎么查看mysql是否啟用了日志
mysqlshow variables like 'log_bin';
2)怎樣知道當(dāng)前的日志
mysql show master status;
3)如何查看當(dāng)前的二進(jìn)制日志,可以使用mysqlbinlog的的工具,命令如下:
shellmysqlbinlog mail-bin.000001(要寫(xiě)絕對(duì)問(wèn)題路徑 d://)
或者shellmysqlbinlog mail-bin.000001 | tail
4)mysql有以下幾種日志:
錯(cuò)誤日志:????
-log-err
查詢?nèi)罩荆????
-log
慢查詢?nèi)罩????
-log-slow-queries
更新日志:?????
-log-update
二進(jìn)制日志:?
-log-bin
在mysql的安裝目錄下,打開(kāi)my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。
例如:
#Enter a name for the error
log file.?? Otherwise a default
name will be used.
log-error=err.log
#Enter a name for the query
log file. Otherwise a default name will be used.
#log=
#Enter a name for the slow
query log file. Otherwise a default name will be used.
#log-slow-queries=
#Enter a name for the update
log file. Otherwise a default name will be used.
#log-update=
#Enter a name for the binary
log. Otherwise a default name will be used.
#log-bin=
上面只開(kāi)啟了錯(cuò)誤日志,要開(kāi)其他的日志就把前面的“#”去掉。
long_query_time =2--
這里設(shè)置慢日志的最大實(shí)現(xiàn)是指執(zhí)行超過(guò)多久的sql會(huì)被log下來(lái),這里是2秒
log-slow-queries=slowqueris.log --將查詢返回較慢的語(yǔ)句進(jìn)行記錄,這里設(shè)置慢日志的名稱(chēng)
log-queries-not-using-indexes
= nouseindex.log --就是字面意思,log下來(lái)沒(méi)有使用索引的query
5)下面是配置日志的幾種方式,不一定全都要配置,請(qǐng)根據(jù)自身需求選擇性配置
log=mylog.log
--對(duì)所有執(zhí)行語(yǔ)句進(jìn)行記錄
log-error=log-error.log
log=log-query.log
log-queries-not-using-indexes
log-warnings=2
log-slow-queries=log-slow-query.log
log-update=log-update.log
long_query_time=2
如何開(kāi)啟 MySql 日志
以下是配置的整個(gè)過(guò)程
編輯my.ini,找到[msqld]部分,加入以下命令
[mysql]
log="E:/mysqllog/mysql.log"
重啟mysql
mysql show variables like "log%";
+---------------------------------+----------------+
| Variable_name | Value |
+---------------------------------+----------------+
| log | ON |
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_error | .\ts17-113.err |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
+---------------------------------+----------------+
此處log行可以看到日志已經(jīng)啟用
mysqlbinlog 是將 binlog 解析成可讀可執(zhí)行的 SQL 的重要工具。
但解析體積較大的 binlog 時(shí),如何查看 mysqlbinlog 的執(zhí)行進(jìn)度就變成了一個(gè)問(wèn)題,mysqlbinlog 并未提供 –progress 這樣的參數(shù)。
那要怎么查看 mysqlbinlog 的解析進(jìn)度?
實(shí)驗(yàn)
我們?cè)?實(shí)驗(yàn) 08 中介紹了如何生成隨機(jī)數(shù)據(jù)??梢岳闷渲屑记桑奢^大的 binlog,我們忽略這個(gè)過(guò)程。
從已有的 binlog 開(kāi)始,bin.000002 大約有 1.1 個(gè) G:
請(qǐng)點(diǎn)擊輸入圖片描述
用 mysqlbinlog 解析該 binlog:
請(qǐng)點(diǎn)擊輸入圖片描述
大概會(huì)執(zhí)行 4.6 秒左右。大家仔細(xì)做實(shí)驗(yàn)時(shí),可以將 binlog 放大一些,讓執(zhí)行實(shí)驗(yàn)更長(zhǎng)一些。
我們?cè)?mysqlbinlog 解析時(shí),查看其文件句柄:
請(qǐng)點(diǎn)擊輸入圖片描述
可以看到 mysqlbinlog 用句柄 3 讀取 binlog。(我們暫時(shí)忽略句柄 4 指向的臨時(shí)文件,其涉及到了行格式的解析過(guò)程,我們安排在以后的實(shí)驗(yàn)中慢慢介紹)
獲取了 mysqlbinlog 處理文件句柄 3 的進(jìn)度,就可以大概估算 mysqlbinlog 的整體進(jìn)度:
請(qǐng)點(diǎn)擊輸入圖片描述
可以看到 mysqlbinlog 此時(shí)的進(jìn)度大概是 600M 左右,整體進(jìn)度估算為 54%。
結(jié)論
我們無(wú)法讓 mysqlbinlog 直接輸出進(jìn)度,于是通過(guò)觀察 mysqlbinlog 對(duì) binlog 的讀取進(jìn)度,估算mysqlbinlog 的整體處理進(jìn)度。