MySQL的日志文件模塊啟動后才會有日志記錄。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、網(wǎng)站制作、廬陽網(wǎng)絡(luò)推廣、成都微信小程序、廬陽網(wǎng)絡(luò)營銷、廬陽企業(yè)策劃、廬陽品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供廬陽建站搭建服務(wù),24小時服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
開啟日志服務(wù):
在MY.INI里,MYSQLD項下添加log-bin=mysql。
如果只對某個庫進(jìn)行日志文件記錄,那么再添加binlog-do-db=test,這樣就只記錄test數(shù)據(jù)庫的日志,而放棄其他的。
添加完后,重新啟動MYSQL的服務(wù),日志文件開始工作了.
查看是否啟用了日志命令:mysqlshow variables like 'log_bin';
查看當(dāng)前的日志命令:mysql show master status;
看二進(jìn)制日志文件用mysqlbinlog命令:shellmysqlbinlog mail-bin.000001
開啟MySQL日志:
找到my.ini文件
打開 log-bin="D:\log\mysql_bin"
就會生成形如:
mysql_bin.000001
mysql_bin.index
這樣的文件。
查看MySQL日志:
D:\mysql\binmysqlbinlog mysql_bin.000001
導(dǎo)出MySQL日志到文本文件:
D:\mysql\binmysqlbinlog D:\mysql\data\mysql_bin.000002 D:\b.txt
更新MySQL日志:
mysqladmin -u root -p password flush-logs
就會生成新的日志文件,序號是連接起來的,比如上一個日志文件名為:
mysql_bin.000001
執(zhí)行命令后就會生成新的日志文件:
mysql_bin.000002
mysql有以下幾種日志:??
錯誤日志:???? -log-err
查詢?nèi)罩荆???? -log
慢查詢?nèi)罩??? -log-slow-queries
更新日志:???? -log-update
二進(jìn)制日志: -log-bin
是否啟用了日志?
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 下。?
windows下
#?在[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"
Linux下
#?在[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
mysql 慢查詢?nèi)罩?導(dǎo)出來的方法
在MySQL客戶端中輸入命令:
show variables like '%quer%';
其中紅框標(biāo)注的選項是:
-slow_query_log是否記錄慢查詢。用long_query_time變量的值來確定“慢查詢”。
-slow_query_log_file慢日志文件路徑
-long_query_time慢日志執(zhí)行時長(秒),超過設(shè)定的時間才會記日志
Linux:
在/etc/my.cnf配置文件的[mysqld]選項下增加:
slow_query_log=TRUE
slow_query_log_file=/usr/local/mysql/slow_query_log.txt
long_query_time=3
Windows:
在my.ini配置文件的[mysqld]選項下增加:
slow_query_log=TRUE
slow_query_log_file=c:/slow_query_log.txt
long_query_time=3
重啟MySQL后,可發(fā)現(xiàn)已經(jīng)開啟慢查詢?nèi)罩?/p>
有時候,我們要在命令行登錄mysql,然后用source命令執(zhí)行某sql文件,這樣執(zhí)行時,日志閃得飛快,還沒來得及看,一下子就過了。這樣不利于我們查看執(zhí)行過程中的日志,我們不清楚是否存在執(zhí)行錯誤的情況。那要怎么記錄一下這樣的日志呢?用tee就可以
這樣會在/tmp目錄下產(chǎn)生一個日志文件,接著再執(zhí)行你想要的source /root/xx.sql命令吧
在mysql命令行執(zhí)行的所有輸出都會記錄到這個日志文件里了