mysql下的日志

    技术2024-12-29  57

    转载:http://www.cnblogs.com/myjavawork/articles/1787384.html 日志文件类型概述: 1 . 错误日志 记录启动、运行或停止mysqld时出现的问题。 My.ini配置信息: #Enter a name for the error log file . Otherwise a default name will be used. # log - error = d: / mysql_log_err.txt 2 . 查询日志 记录建立的客户端连接和执行的语句。 My.ini配置信息: #Enter a name for the query log file . Otherwise a default name will be used. # log = d: / mysql_log.txt 3 . 更新日志 记录更改数据的语句。不赞成使用该日志。 My.ini配置信息: #Enter a name for the update log file . Otherwise a default name will be used. # log - update = d: / mysql_log_update.txt 4 . 二进制日志 记录所有更改数据的语句。还用于复制。 My.ini配置信息: #Enter a name for the binary log . Otherwise a default name will be used. # log - bin = d: / mysql_log_bin 5 . 慢日志 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。 My.ini配置信息: #Enter a name for the slow query log file . Otherwise a default name will be used. #long_query_time = 1 # log - slow - queries = d: / mysql_log_slow.txt

     

     

     

    Linux下的配置

     

    代码 在linux下: Sql代码 1 . # 在 [ mysqld ] 中輸入 2 . # log 3 . log - error =/ usr / local / mysql / log / error. log 4 . log =/ usr / local / mysql / log / mysql. log 5 . long_query_time = 2 6 . 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代码 1 . # 在 [ mysqld ] 中輸入 2 . # log 3 . log - error = "E: / PROGRA ~ 1 / EASYPH ~ 1 .0B1 / mysql / logs / error. log " 4 . log = "E: / PROGRA ~ 1 / EASYPH ~ 1 .0B1 / mysql / logs / mysql. log " 5 . long_query_time = 2 6 . 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 -- 对所有执行语句进行记录

     

     

     

    日志的存放:默认情况下,当开启时,所有的日志都存放在DataDir目录下 . 如果没有指定名称的话,它会以后主机名为名称. 如主机名为songcomputer,则相关就的日志为songcomputer.log文件.

     

     

    Mysql日志的关闭与开启:

    使用以下命令查看是否启用了日志

    mysql>show variables  like  'log_%’;

     

    凡Value值为OFF的表示未开启服务,若要开启只需要将上的my.ini配置信息写入(my.ini为mysql安装目录下),然后去掉前面的“#” 号,再重启mysql服务。OK,现在会看到指定的日志文件已创建。相反地,若要停止mysql日志服务,只需要将my.ini中对应的配置信息去掉即 可。

     

     

    >>>>相应的使用慢日志查询

     

    手动的去读取慢日志以及修改慢日志的时间

     

    show variables like 'long%'

    会得到慢日志的时间

     

    进行设置慢日志的值

    set long_query_time = 2;  

     

     

     

     

    侧重的二进制文件

     

    二进制日志:

        从概述中我可以看到my.ini配置信息的log-bin没有指定文件扩展名,这是因为即使你指定上扩展名它也不使用。当mysql创建二进制日志文件 时,首先创建一个以“mysql_log_bin”为名称,以“.index”为后缀的文件;再创建一个以“mysql_log_bin”为名称,以 “.000001”为后缀的文件。当mysql服务重新启动一次以“.000001”为后缀的文件会增加一个,并且后缀名加1递增;如果日志长度超过了 max_binlog_size的上限(默认是1G)也会创建一个新的日志文件;使用flush logs(mysql命令符)或者执行mysqladmin –u –p flush-logs(windows命令提示符)也会创建一个新的日志文件。

    既然写入的都是二进制数据,用记事本打开文件是看不到正常数据的,那怎么查看呢?

    使用BIN目录下mysqlbinlog命令,如:

    Bin>mysqlbinlog d:/mysql_log/mysql_bin.000001

    Bin>mysqlbinlog d:/mysql_log/mysql_bin.000002

    Bin>mysqlbinlog d:/mysql_log/mysql_bin.000003

    Bin>mysqlbinlog d:/mysql_log/mysql_bin.000004

    Bin>mysqlbinlog d:/mysql_log/mysql_bin.000005

    使用SQL语句也可查看mysql创建的二进制的文件目录:

     

    Mysql> show master logs; 

     

    查看当前二进制文件状态:

     

    mysql> show master status; 
    最新回复(0)