阅读背景:

mysql日志

来源:互联网 

mysql日志
分为4种分离是:二进制日志、毛病日志、通用查询日志和慢查询日志。
二进制日志:以二进制文件的情势记载了数据库中的操作,但不记载查询语句。
毛病日志:记载mysql服务器的启动、关闭的时光和运行毛病等信息
通用查询日志:记载用户登录和记载查询的信息
慢查询日志:记载履行时光超过指定时光的操作。
注:除二进制日志外,其他日志都是文本篇文章件。日志文件通常存储在数据库的数据目录下。默许只启动毛病日志的功效。其他3类日志都须要数据库管理员进行设置。日志功效会下降数据库履行速度,记载日志要消费很多时光。并且会占用大批的硬盘空间。

1、二进制日志:
也叫变革日志(update log)用于记载数据库变更。默许二进制日志功效是关闭的。可通过my.cnf或my.ini文件的log-bin选项可以开启二进制日志。将log-bin选项参加到my.cnf或my.ini文件的[mysqld]组中,如:
  #my.cnf(Linux操作体系下)或my.ini(windows操作体系下)
  [mysqld]
  log-bin[=Dir\[filename]]
其中,DIR参数指定二进制文件的存储路径;filename参数指定二进制文件的文件名,情势为filename.number,number情势为000001、000002等。每次重启mysql服务都会生成一个新的二进制日志文件,这些日志文件的"number"会不断递增。本来的日志文件任然存在,另外还会生成一个名为filename.index的文件。该文件存储所有二进制日志文件的清单。
注:二进制日志与数据库的数据文件不要放同一块硬盘,如果数据文件所在硬盘被损坏,也能够用另外一块硬盘上的二进制日志来恢复数据库文件。
例:在my.ini文件的[mysqld]组中添加下面的语句
 [mysqld]
 log-bin
注:如果没dir和filename参数,默许存储在数据库的数据目录下,默许文件名为hostname-bin.number,其中hostname表现主机名。重启mysql服务器后可在数据目录下看到hjh-bin.-000001这个文件,同事还生成了hjh-bin.index文件。此处mysql服务器主机名为hjh。
a、查看二进制日志
格局:mysqlbinlog filename.number
注:该命令会在当前文件夹下查找指定的二进制日志。因此须要在二进制日志filename.number所在目录下运行该命令。
如:C:/log>mysqlbinlog mylog.000001
如:mysqlbinlog C:\log\mylog.000001
b、删除所有二进制日志
删除所有二进制日志,格局:reset master;
c、依据编号来删除二进制日志,该命令可以删除指定二进制日志编号之前的日志。
格局:PURGE MASTER LOGS TO "filename.number";
如:PURGE MASTER LOGS TO "mylog.000004";履行后编号01、02、03的二进制日志将被删除。
d、依据创立时光删除二进制日志,删除指定时光之前创立的二进制日志。如:
PURGE MASTER LOGS TO "yyyy-mm-dd hh:mm:ss";
e、应用二进制日志还原数据库(先用最近备份文件来还原,以后用二进制日志还原)格局,如:
mysqlbinlog filename.number|mysql -u root -p
注:编号小的先还原,如
mysqlbinlog mylog.000001|mysql -u root -p
mysqlbinlog mylog.000002|mysql -u root -p
f、暂时停滞二进制日志功效,如:set SQL_LOG_BIN=0;
重新开启格局:set SQL_LOG_BIN=1;

2、毛病日志
默许毛病日志功效是开启的。而且毛病日志没法被制止。存储在mysql数据库的数据文件夹下。通常名为hostname.err。其中hostname表现mysql服务器主机名。存储地位可以通过log-error选项来设置。将log-error选项参加到my.ini或my.inf文件的[mysqld]组中。如:
 #my.cnf(Linux操作体系下)或my.ini(windows操作体系下)
  [mysqld]
  log-error=Dir/[filename]
 注:filename参数是毛病日志名,没有该参数时默以为主机名。
由因而文本篇文章件所以可以直接查看。
a、删除毛病日志
可以用mysqladmin命令开启新的毛病日志。如:mysqladmin -uroot -p flush-logs
履行该命令后会主动创立一个新的毛病日志。旧的毛病日志依然保存着,只是已更名为filename.err-old。
或登录数据库后用flush logs;来开启新的毛病日志。

3、通用查询日志
默许是关闭的,通过my.cnf或my.ini文件的log选项可以开启通用查询日志。情势如:
  #my.cnf(Linux操作体系下)或my.ini(windows操作体系下)
  [mysqld]
  log[=Dir\[filename]]
如果不指定文件名,默许文件名为hostname.log。hostname是mysql服务器的主机名。
由因而文本篇文章件所以可以直接查看。
新的通用查询日志会直接笼罩旧的查询日志,不用手动删除。如:
mysqladmin -uroot -p flush-logs

4、慢查询日志
默许是关闭的,通过my.cnf或my.ini文件的log-slow-queries选项可以开启慢查询日志。通过long_query_time选项来设置时光值,时光以秒为单位。超过这个值就会被记载到该日志,情势如:
  #my.cnf(Linux操作体系下)或my.ini(windows操作体系下)
  [mysqld]
  log-slow-queries[=Dir\[filename]]
  long_query_time=n
  注:生成的日志文件名为filename-slow.log。如不指定文件名,默许文件名为hostname-slow.log,默许n为10秒。
benchmark(count,expr)函数可以测试履行count次expr。
a、删除慢查询日志
命令如:mysqladmin -u root -p flush-logs,新的慢查询日志会直接笼罩旧的查询日志,不须要手动删除。也能够手工删除后重启服务会生成新的 慢查询日志。如果要备份旧的慢查询日志可以将旧的日志文件改名,然后重启服务。mysql日志
分为4种分离是:二进制日志、毛病日志、通用查询日志和慢查询日志。
二进制日志:以二进




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: