MySQL日志设置及查看方法
MySQL有以下几种日志:
错误日志:-log-err
查询日志:-log
慢查询日志:-log-slow-queries
更新日志:-log-update
二进制日志:-log-bin
默认情况下,所有日志创建于mysqld数据目录中。通过刷新日志,你可以强制mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当你执行一个FLUSHLOGS语句或执行mysqladminflush-logs或mysqladminrefresh时,出现日志刷新
1.错误日志
用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。如果没有给定file_name值,mysqld使用错误日志名host_name.err并在数据目录中写入日志文件。如果你执行FLUSHLOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。(如果未给出--log-error选项,则不会重新命名)。
如果不指定--log-error,或者(在Windows中)如果你使用--console选项,错误被写入标准错误输出stderr。通常标准输出为你的终端。
2.通用查询日志
用--log[=file_name]或-l[file_name]选项启动它。如果没有给定file_name的值,默认名是host_name.log。
3.慢速查询日志
用--log-slow-queries[=file_name]选项启动时,mysqld写一个包含所有执行时间超过long_query_time秒的SQL语句的日志文件.如果没有给出file_name值,默认未主机名,后缀为-slow.log。如果给出了文件名,但不是绝对路径名,文件则写入数据目录。
3.更新日志
用--log-update[=file_name]选项启动,不推荐使用.
是否启用了日志
mysql>showvariableslike'log_%';
怎样知道当前的日志
mysql>showmasterstatus;
显示二进制日志数目
mysql>showmasterlogs;
看二进制日志文件用mysqlbinlog
shell>mysqlbinlogmail-bin.000001
或者shell>mysqlbinlogmail-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--是指执行超过多久的sql会被log下来,这里是2秒
log-slow-queries=/usr/local/mysql/log/slowquery.log--将查询返回较慢的语句进行记录
log-queries-not-using-indexes=nouseindex.log--就是字面意思,log下来没有使用索引的query
log=mylog.log--对所有执行语句进行记录
windows下开启mysql日志:
在[mysql]下加入这些(基本上等于加在最后面):
log-error=
#Enteranameforthequerylogfile.Otherwiseadefaultnamewillbeused.
#注:(写成txt文件editplus可以及时重载,不过有时要放在C盘下editplus才可以及时重载)
log=c:/mysql_query.log.txt
#Enteranamefortheslowquerylogfile.Otherwiseadefaultnamewillbeused.
log-slow-queries=
#Enteranamefortheupdatelogfile.Otherwiseadefaultnamewillbeused.
log-update=
#Enteranameforthebinarylog.Otherwiseadefaultnamewillbeused.
log-bin=