1.首先確認(rèn)你日志是否啟用了

在懷來(lái)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需求定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),成都全網(wǎng)營(yíng)銷,外貿(mào)營(yíng)銷網(wǎng)站建設(shè),懷來(lái)網(wǎng)站建設(shè)費(fèi)用合理。
MySQLshow variables like 'log_bin';
2.如果啟用了,即ON那日志文件就在MySQL的安裝目錄的data目錄下
3.當(dāng)前的日志
MySQL show master status;
4.看二進(jìn)制日志文件用MySQLbinlog
shellMySQLbinlog mail-bin.000001
或者
shellMySQLbinlog mail-bin.000001 | tail
1、首先確認(rèn)你日志是否啟用了mysqlshow variables like 'log_bin'。
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 下用類似的。
MySQL的日志操作:
1、首先,登陸mysql后,執(zhí)行sql語(yǔ)句:show variables like 'log_bin'。
2、#錯(cuò)誤日志log-errol開啟方式:在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,開啟方式:在my.ini的[mysqld]選項(xiàng)下:添加代碼:log=E:/mysql_log.txt。
4、#二進(jìn)制日志:log-bin,開啟方式:在my.ini的[mysqld]選項(xiàng)下:添加代碼:log-bin=E:/mysql_log_bin,記錄內(nèi)容:主要是記錄所有的更改數(shù)據(jù)的語(yǔ)句,可使用mysqlbinlog命令恢復(fù)數(shù)據(jù)。
有時(shí)候我們會(huì)不小心對(duì)一個(gè)大表進(jìn)行了 update,比如說(shuō)寫錯(cuò)了 where 條件......
此時(shí),如果 kill 掉 update 線程,那回滾 undo log 需要不少時(shí)間。如果放置不管,也不知道 update 會(huì)持續(xù)多久。
那我們能知道 update 的進(jìn)度么?
實(shí)驗(yàn)
我們先創(chuàng)建一個(gè)測(cè)試數(shù)據(jù)庫(kù):
快速創(chuàng)建一些數(shù)據(jù):
連續(xù)執(zhí)行同樣的 SQL 數(shù)次,就可以快速構(gòu)造千萬(wàn)級(jí)別的數(shù)據(jù):
查看一下總的行數(shù):
我們來(lái)釋放一個(gè)大的 update:
然后另起一個(gè) session,觀察 performance_schema 中的信息:
可以看到,performance_schema 會(huì)列出當(dāng)前 SQL 從引擎獲取的行數(shù)。
等 SQL 結(jié)束后,我們看一下 update 從引擎總共獲取了多少行:
可以看到該 update 從引擎總共獲取的行數(shù)是表大小的兩倍,那我們可以估算:update 的進(jìn)度 = (rows_examined) / (2 * 表行數(shù))
????小貼士
information_schema.tables 中,提供了對(duì)表行數(shù)的估算,比起使用 select count(1) 的成本低很多,幾乎可以忽略不計(jì)。
那么是不是所有的 update,從引擎中獲取的行數(shù)都會(huì)是表大小的兩倍呢?這個(gè)還是要分情況討論的,上面的 SQL 更新了主鍵,如果只更新內(nèi)容而不更新主鍵呢?我們來(lái)試驗(yàn)一下:
等待 update 結(jié)束,查看 row_examined,發(fā)現(xiàn)其剛好是表大小:
那我們?cè)趺礈?zhǔn)確的這個(gè)倍數(shù)呢?
一種方法是靠經(jīng)驗(yàn):update 語(yǔ)句的 where 中會(huì)掃描多少行,是否修改主鍵,是否修改唯一鍵,以這些條件來(lái)估算系數(shù)。
另一種方法就是在同樣結(jié)構(gòu)的較小的表上試驗(yàn)一下,獲取倍數(shù)。
這樣,我們就能準(zhǔn)確估算一個(gè)大型 update 的進(jìn)度了。
查看mysql日志的方法:
使用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語(yǔ)句也可查看mysql創(chuàng)建的二進(jìn)制的文件目錄:
Mysql show master logs; 查看當(dāng)前二進(jìn)制文件狀態(tài):
mysql show master status;
1)怎么查看mysql是否啟用了日志
mysqlshow variables like 'log_bin';
2)怎樣知道當(dāng)前的日志
mysql show master status;
3)如何查看當(dāng)前的二進(jìn)制日志,可以使用mysqlbinlog的的工具,命令如下:
shellmysqlbinlog mail-bin.000001(要寫絕對(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的安裝目錄下,打開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=
上面只開啟了錯(cuò)誤日志,要開其他的日志就把前面的“#”去掉。
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è)置慢日志的名稱
log-queries-not-using-indexes
= nouseindex.log --就是字面意思,log下來(lá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
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 開始,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)度。
網(wǎng)站標(biāo)題:mysql怎么打開日志,mysql啟動(dòng)日志在哪里
路徑分享:http://chinadenli.net/article7/dsgedij.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)、云服務(wù)器、、品牌網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)