通用查詢?nèi)罩究梢源娣诺揭粋€(gè)文本文件或者表中,所有連接和語句被記錄到該日志文件或表,缺省未開啟該日志。
在湖濱等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需求定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷推廣,成都外貿(mào)網(wǎng)站建設(shè),湖濱網(wǎng)站建設(shè)費(fèi)用合理。
通過--log[=file_name]或-l [file_name]選項(xiàng)啟動(dòng)它。如果沒有給定file_name的值, 默認(rèn)名是host_name.log。
mysqld按照它接收的順序記錄語句到查詢?nèi)罩尽_@可能與執(zhí)行的順序不同。
不同于更新日志和二進(jìn)制日志,它們?cè)诓樵儓?zhí)行后,但是任何一個(gè)鎖釋放之前記錄日志。
查詢?nèi)罩景姓Z句,而二進(jìn)制日志不包含只查詢數(shù)據(jù)的語句。
服務(wù)器重新啟動(dòng)和日志刷新不會(huì)產(chǎn)生新的一般查詢?nèi)罩疚募?/p>
查看MySQL執(zhí)行的語句
想實(shí)時(shí)查看MySQL所執(zhí)行的sql語句,類似mssql里的事件探查器。對(duì)my.ini文件進(jìn)行設(shè)置,打開文件進(jìn)行修改:
basedir=E:/MySQL 4.0.12 #bind-address=192.168.15.196 datadir=E:/MySQL 4.0.12/data #language=E:/MySQL 4.0.12/share/your language directory #slow query log#=slowqueris.log #tmpdir#= #port=3306 #set-variable=key_buffer=16M
ong_query_time =1 --是指執(zhí)行超過多久的sql會(huì)被log下來,這里是1秒
log-slow-queries=slowqueris.log --將查詢返回較慢的語句進(jìn)行記錄
log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下來沒有使用索引的query
log=mylog.log --對(duì)所有執(zhí)行語句進(jìn)行記錄
以上參數(shù)開啟后,可能會(huì)影響MySQL性能,在生產(chǎn)環(huán)境下建議關(guān)閉
如何使用新的更新日志
如果你只使用一個(gè)更新日志,你只須清空日志文件,然后移走舊的更新日志文件到一個(gè)備份中,然后啟用新的更新日志。
用下列方法可以強(qiáng)制服務(wù)器啟用新的更新日志:
mysqladmin flush-logs
你一般需要在命令行提供使用的`數(shù)據(jù)庫用戶:
mysqladmin –u root –p flush-logs mysqladmin refresh
你一般需要在命令行提供使用的數(shù)據(jù)庫用戶:
mysqladmin –u root –p refresh
如果你正在使用MySQL 3.21或更早的版本,你必須使用mysqladmin refresh。
SQL命令
FLUSH LOGS
重啟服務(wù)器
上述方法都具有這樣的功能:
關(guān)閉并且再打開標(biāo)準(zhǔn)和更新記錄文件。如果你指定了一個(gè)沒有擴(kuò)展名的更新記錄文件,新的更新記錄文件的擴(kuò)展數(shù)字將相對(duì)先前的文件加1。
mysqlFLUSH LOGS;
如何使用新的常規(guī)日志
用上面的方法同樣可以強(qiáng)制更新常規(guī)日志。
要準(zhǔn)備備份常規(guī)日志,其步驟可能復(fù)雜一些:
$ cd mysql-data-directory$ mv mysql.log mysql.old$ mysqladmin flush-tables
然后做一個(gè)備份并刪除“mysql.old”。
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語句: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)的致命性問題,都是系統(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ù)的語句,可使用mysqlbinlog命令恢復(fù)數(shù)據(jù)。
MySQL有以下幾種日志:
錯(cuò)誤日志: -log-err
查詢?nèi)罩荆?-log
慢查詢?nèi)罩? -log-slow-queries
更新日志: -log-update
二進(jìn)制日志: -log-bin
默認(rèn)情況下,所有日志創(chuàng)建于mysqld數(shù)據(jù)目錄中。通過刷新日志,你可以強(qiáng)制 mysqld來關(guān)閉和重新打開日志文件(或者在某些情況下切換到一個(gè)新的日志)。當(dāng)你執(zhí)行一個(gè)FLUSH LOGS語句或執(zhí)行mysqladmin flush-logs或mysqladmin refresh時(shí),出現(xiàn)日志刷新
1. 錯(cuò)誤日志
用--log- error[=file_name]選項(xiàng)來指定mysqld保存錯(cuò)誤日志文件的位置。如果沒有給定file_name值,mysqld使用錯(cuò)誤日志名 host_name.err 并在數(shù)據(jù)目錄中寫入日志文件。如果你執(zhí)行FLUSH LOGS,錯(cuò)誤日志用-old重新命名后綴并且mysqld創(chuàng)建一個(gè)新的空日志文件。(如果未給出--log-error選項(xiàng),則不會(huì)重新命名)。
如果不指定--log-error,或者(在Windows中)如果你使用--console選項(xiàng),錯(cuò)誤被寫入標(biāo)準(zhǔn)錯(cuò)誤輸出stderr。通常標(biāo)準(zhǔn)輸出為你的終端。
2. 通用查詢?nèi)罩?/p>
用--log[=file_name]或-l [file_name]選項(xiàng)啟動(dòng)它。如果沒有給定file_name的值,默認(rèn)名是host_name.log。
3. 慢速查詢?nèi)罩?/p>
用--log-slow-queries[=file_name]選項(xiàng)啟動(dòng)時(shí),mysqld 寫一個(gè)包含所有執(zhí)行時(shí)間超過long_query_time秒的SQL語句的日志文件.如果沒有給出file_name值,默認(rèn)未主機(jī)名,后綴為 -slow.log。如果給出了文件名,但不是絕對(duì)路徑名,文件則寫入數(shù)據(jù)目錄。
3. 更新日志
用--log-update[=file_name]選項(xiàng)啟動(dòng),不推薦使用.
是否啟用了日志
mysqlshow variables like 'log_%';
怎樣知道當(dāng)前的日志
mysql show master status;
顯示二進(jìn)制日志數(shù)目
mysql show master logs;
看二進(jìn)制日志文件用mysqlbinlog
shellmysqlbinlog mail-bin.000001
或者shellmysqlbinlog mail-bin.000001 | tail
在配置文件中指定log的輸出位置.
Windows:Windows 的配置文件為 my.ini,一般在 MySQL 的安裝目錄下或者 c:\Windows 下。
Linux:Linux 的配置文件為 my.cnf ,一般在 /etc 下。
在linux下:
Sql代碼
# 在[mysqld] 中輸入
#log
log-error=/usr/local/mysql/log/error.log
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log
# 在[mysqld] 中輸入 #log
log-error=/usr/local/mysql/log/error.log
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log
windows下:
Sql代碼
# 在[mysqld] 中輸入
#log
log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
long_query_time=2
log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"
# 在[mysqld] 中輸入 #log
log-error="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/error.log"
log="E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/mysql.log"
long_query_time=2
log-slow-queries= "E:/PROGRA~1/EASYPH~1.0B1/mysql/logs/slowquery.log"
開啟慢查詢
long_query_time =2 --是指執(zhí)行超過多久的sql會(huì)被log下來,這里是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log --將查詢返回較慢的語句進(jìn)行記錄
log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下來沒有使用索引的query
log=mylog.log --對(duì)所有執(zhí)行語句進(jìn)行記錄
windows下開啟mysql日志:
在[mysql]下加入這些(基本上等于加在最后面):
log-error=
#Enter a name for the query log file. Otherwise a default name will be used.
#注:(寫成txt文件editplus可以及時(shí)重載,不過有時(shí)要放在C盤下editplus才可以及時(shí)重載)
log= c:/mysql_query.log.txt
#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=