2013年(350)
分类: Mysql/postgreSQL
2013-04-11 16:01:43
从5.1.6版本开始,提供了更灵活的方式控制日志文件的输出以及输出路径。MySQL的标准日志(特指general_log和slow_log),即可以输出到文件,同时也能够以表的形式保存在数据库mysql中的同名表内,而在5.1.6版本之前,只记录日志到文件。
提示:
从5.1.6版本开始,日志表会在过程中随其它系统表一同创建。如果是从5.1.6之前的版本升级而来,那么DBA需要注意,要手动升级系统表,以确保相关日志表存在。
当前,日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源,因此对于需要启用日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。
不过,记录到系统表当然也有它的好处,比如说这类表可以通过简单的授权,即可让所有连接到MySQL数据库的用户查看到日志中记录的内容,而且日志表可以通过语句访问,这样也能够比较便捷的通过SQL语句的强大功能进行数据过滤,这都是日志文件不易做到的功能。
2.3.1 服务启动时进行配置
MySQL的命令行在启动时可以加载很多参数,其中就提供了一个日志专用的参数--log-output,用来指定日志文件的输出方式,注意,说的是输出方式,也就是说到底是记录到操作系统中的文件,还是记录到系统中的专用表。
--log-output参数可选值有三个:
上述参数值在设置时可以同时指定多个,相互之间以","逗号分隔即可。
在指定--log-output参数值不为NONE的基础上,才有可能继续日志文件输出路径的设置,要控制普通查询日志或是慢查询日志文件的生成,又有另外的参数:
提示:
在5.1.29版本之前,没有--general_log_file和--slow_query_log_file这两个参数,控制文件名及输出路径是通过--log和--log-slow-queries两个参数。文学描述如果觉着不够清晰,那就看下面几个例子再强化一下吧,比如说:
2.3.2 服务运行中进行配置
MySQL提供了非常多的系统环境变量,用来控制MySQL服务运行时的状态。
其中,有不少的系统变量与MySQL命令行中的参数相似度极高,甚至包括名称、功能、参数值语法等都一模一样,如果要说有区别的话,就是命令行参数是在命令执行时调用,一经设置,除非重新运行命令行,否则无法修改,而很多系统环境变量,则支持服务运行过程中进行动态的修改,这其中,就包括与日志文件配置相关的一些参数:
上面这几个参数均支持全局动态修改,参数的功能与前面命令行中同名参数完全相同,就不多说了,着重描述下面这个参数:
============================================
连载:
MySQL数据库中的日志文件---(3)慢查询日志
MySQL数据库中的日志文件---(2)普通查询日志
MySQL数据库中的日志文件---(1)错误日志