日期:2014-05-16  浏览次数:20724 次

mysql日志
日志文件类型概述:  
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
Mysql日志的关闭与开启:
使用以下命令查看是否启用了日志
mysql>show variables like 'log_%’;
凡Value值为OFF的表示未开启服务,若要开启只需要将上的my.ini配置信息写入(my.ini为mysql安装目录下),然后去掉前面的“#”
号,再重启mysql服务。OK,现在会看到指定的日志文件已创建。相反地,若要停止mysql日志服务,只需要将my.ini中对应的配置信息去掉即
可。
二进制日志:
  
从概述中我可以看到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; 



解决了免安装版mysql在命令行中报错时,主机会发出“嘀嘀”响声的问题
前些天,下载了一个免安装版的mysql,由于我的本性能不太好,免安装版的正合我意。我下的是
mysql-noinstall-5.1.6-alpha-win32.zip,
那个网址不记得了。不过Google一下,遍地都是!

不过,使用过程中有个问题一直很烦,就是在命令行下,执行命令时,如果发生报错,电脑会发出“嘀”的响声,貌似主板的声音,很是刺耳,有点讨厌。

于是,在网上查了一下,发现有这个问题的还挺少,没找到答案,于是问了一下同事牛人,在试了N次之后,终于搞定了这个问题,方法很简单:

在配置文件my.ini中的[mysql]节点下,添加一行no-beep,保存,重启mqsql,就ok了。

不过有的刚接触mysql的朋友可能会说,我没有my.ini文件啊?

的确,安装完mysql之后或者是下载的免安装版解压之后,默认是没有my.ini文件的.
但是,有几个类似的文件,如
my-small.ini、my-medium.ini、my-large.ini、my-huge.ini,
下面我说一下这几个文件是干嘛的。
这几个文件是mysql针对不同的应用推荐的不同的配置信息;但这些配置只有放到my.ini中才会被应用。
其中:
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少1GB的RAM,以便它能够同时处理操作系统与数据库应用程序。
4、my-huge.ini是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。

这些选择高度依赖于内存的数量、计算机的运算速度、数据库的细节大小、访问数据库的用户数量以及在数据库中装入并访问数据的用户数量。随着数据库和用户的不断增加,数据库的性能可能会发生变化。

可以根据自己的情况,选择某一个文件中配置复制到my.ini中,my.ini文件当然需要自己创建,直接新建这个文件就行了,然后复制进去配置信息。我本机上的mysql只是学习用的,使用的是my-small.ini中的配置;如果有其他的需求,可以针对my.ini文件中某个节点修改配置。