1、首先確認(rèn)你日志是否啟用了mysqlshow variables like 'log_bin'。
為浦城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及浦城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、做網(wǎng)站、浦城網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
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語句:show variables like 'log_bin'。
2、#錯誤日志log-errol開啟方式:在my.ini的[mysqld]選項下:添加代碼:log-error=E:\log-error.txt。
記錄內(nèi)容:主要是記錄啟動、運行或停止mysqld時出現(xiàn)的致命性問題,都是系統(tǒng)級的錯誤記錄。
3、#查詢?nèi)罩荆簂og,開啟方式:在my.ini的[mysqld]選項下:添加代碼:log=E:/mysql_log.txt。
4、#二進(jìn)制日志:log-bin,開啟方式:在my.ini的[mysqld]選項下:添加代碼:log-bin=E:/mysql_log_bin,記錄內(nèi)容:主要是記錄所有的更改數(shù)據(jù)的語句,可使用mysqlbinlog命令恢復(fù)數(shù)據(jù)。
方法/步驟
1、首先,登陸mysql后,執(zhí)行sql語句:
show
variables
like
'log_bin';
查看是否日志開啟,詳細(xì)結(jié)果如圖:
2、#錯誤日志
log-error
開啟方式:
在my.ini的[mysqld]選項下:
添加代碼:
log-error=E:\log-error.txt
記錄內(nèi)容:
主要是記錄啟動、運行或停止mysqld時出現(xiàn)的致命性問題,都是系統(tǒng)級的錯誤記錄如圖:
3、#查詢?nèi)罩?/p>
log
開啟方式:
在my.ini的[mysqld]選項下:
添加代碼:
log=E:/mysql_log.txt
記錄內(nèi)容:
主要是記錄數(shù)據(jù)庫建立的客戶端連接和執(zhí)行的語句如圖:
4、#二進(jìn)制日志
log-bin
開啟方式:
在my.ini的[mysqld]選項下:
添加代碼:
log-bin=E:/mysql_log_bin
記錄內(nèi)容:
主要是記錄所有的更改數(shù)據(jù)的語句,可使用mysqlbinlog命令恢復(fù)數(shù)據(jù)。如圖:
#慢日志
log-slow-queries
開啟方式:
在my.ini的[mysqld]選項下:
添加代碼:
long_query_time
=1
(設(shè)定慢查詢的標(biāo)準(zhǔn),單位是s/秒)
log-slow-queries=
E:/mysql_log_slow.txt
記錄內(nèi)容:
主要是記錄所有執(zhí)行時間超過long_query_time的查詢或沒有使用索引的查詢?nèi)鐖D:
以上就是專題欄小編帶來的mysql中文版教程,更多教程請看“”
日志是MySQL的重要組成部分,其中對于開發(fā)而言不得不關(guān)注三種重要的日志,分別是二進(jìn)制日志(bin log)、事務(wù)日志(redo log、undo log)。接下來詳細(xì)介紹這三種日志。
binlog叫做二進(jìn)制日志,主要是用于記錄MySQL表的邏輯變化過程。在實際應(yīng)用過程中,通常被用于主從復(fù)制和數(shù)據(jù)恢復(fù)。
事務(wù)執(zhí)行過程中,會先把日志寫到binlog cache,事務(wù)提交的時候,再把binlog cache寫到binlog文件中。
事務(wù)提交后的寫入只是寫入到文件系統(tǒng)的page cache,并沒有把數(shù)據(jù)持久化到磁盤。持久化磁盤由操作系統(tǒng)決定調(diào)用fsync。
MySQL提供了配置決定fsync的時機(jī),當(dāng)sync_binlog=0的時候,每次提交事務(wù)只寫入page cache,不執(zhí)行fsync。當(dāng)sync_binlog=1的時候,表示每次提交事務(wù)都會執(zhí)行fsync。當(dāng)sync_binlog = N的時候,每次提交事務(wù)都寫入page cache,累計多個事務(wù)才進(jìn)行fsync。
顯然,當(dāng)sync_binlog = 1的時候,binlog日志不會丟失。當(dāng)sync_binlog = N的時候,如果發(fā)生異常重啟,會丟失N個事務(wù)的binlog日志。
STATEMENT
記錄數(shù)據(jù)操作的原始SQL,可能引發(fā)主庫備庫因索引選擇不一致,導(dǎo)致數(shù)據(jù)執(zhí)行結(jié)果不一致。
ROW
ROW基于行復(fù)制,只記錄哪條數(shù)據(jù)被修改.缺點:占空間。比如DELETE 語句,對于STATEMENT只占用1條SQL。而ROW格式則需要把所有記錄的數(shù)據(jù)記錄下來。
MIXED
對于可能引發(fā)主備不一致的命令使用ROW格式,否則使用STATEMTNT
對于每一次更新操作,MySQL都需要寫入磁盤,然后需要找到對應(yīng)那條記錄并更新。IO成本較高和查找成本都很高。為了提高性能,MySQL會將更新操作寫入redo log,并更新內(nèi)存。INNODB引擎會在適當(dāng)?shù)臅r候?qū)⒉僮饔涗浉碌酱疟P。
[圖片上傳失敗...(image-c6a1f2-1627716309698)]
undo log主要是記錄了數(shù)據(jù)的邏輯變化,比如對應(yīng)一條insear語句,undo log會記錄一條delete語方便回退到更新前的值。
時刻A發(fā)生故障的話,由于binlog未寫入,redo log回滾數(shù)據(jù),兩個日志數(shù)據(jù)是一致的。
時刻B發(fā)生故障,則需要判斷binlog是否完整來決定如何恢復(fù)。
redo log和bin log的區(qū)別?
為什么redo log crash-safe,而bin log不可以?
1)怎么查看mysql是否啟用了日志
mysqlshow variables like 'log_bin';
2)怎樣知道當(dāng)前的日志
mysql show master status;
3)如何查看當(dāng)前的二進(jìn)制日志,可以使用mysqlbinlog的的工具,命令如下:
shellmysqlbinlog mail-bin.000001(要寫絕對問題路徑 d://)
或者shellmysqlbinlog mail-bin.000001 | tail
4)mysql有以下幾種日志:
錯誤日志:????
-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=
上面只開啟了錯誤日志,要開其他的日志就把前面的“#”去掉。
long_query_time =2--
這里設(shè)置慢日志的最大實現(xiàn)是指執(zhí)行超過多久的sql會被log下來,這里是2秒
log-slow-queries=slowqueris.log --將查詢返回較慢的語句進(jìn)行記錄,這里設(shè)置慢日志的名稱
log-queries-not-using-indexes
= nouseindex.log --就是字面意思,log下來沒有使用索引的query
5)下面是配置日志的幾種方式,不一定全都要配置,請根據(jù)自身需求選擇性配置
log=mylog.log
--對所有執(zhí)行語句進(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
1、首先找到MySQL的配置文件my.cnf,在[mysqld]下添加
2、general_log_file=~/query.log
3、同時,登錄MySQL console中設(shè)置打開log
4、mysql -uroot
5、 SET global general_log = 1;
6、重啟MySQL之后就可以在當(dāng)前用戶的HOME目錄中通過query.log查看SQL日志了。
在連接linux服務(wù)器的putty工具中輸入“set global general_log=1” 打開日志文件。同時查看并記住日志文件的位置。在putty工具中輸入“tail -f 日志文件”就可以查看日志了。有關(guān)mysql日志使用方法,可以百度黑馬測試相關(guān)視頻學(xué)習(xí)。
標(biāo)題名稱:mysql日志怎么使用 mysql四種常見日志
當(dāng)前網(wǎng)址:http://jinyejixie.com/article20/hpcjco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、服務(wù)器托管、做網(wǎng)站、App設(shè)計、域名注冊、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)