Sunday, May 27, 2007

[mysql5.1 manual 3.8] 与Apache一起使用MySQL

还有一些项目,你可以从MySQL数据库鉴别用户,并且你还可以将日志文件写入MySQL数据库表。
你可以将以下内容放到Apache配置文件中,更改Apache日志格式,使MySQL更容易读取:

LogFormat \
"\"%h\",%{%Y%m%d%H%M%S}t,%>s,\"%b\",\"%{Content-Type}o\", \
\"%U\",\"%{Referer}i\",\"%{User-Agent}i\""
要想将该格式的日志文件装载到MySQL,你可以使用以下语句:

LOAD DATA INFILE '/local/access_log' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
所创建的表中的列应与写入日志文件的LogFormat行对应。

另外可以在apache2 http.conf里在日志记录时利用管道命令直接将apache2 access log写入mysql中,还有个apache2的module可以直接实现此功能:mod_log_mysql,具体到其网站上查看设置使用方法,这种直接将access log写入mysql中的方法个人认为不是很妥当,还是用日志循回,再将日志导入mysql中比较好。
也可以利用php, perl, ruby写个脚本分析access_log后写入mysql中。

上面提到将apache2 access log写入mysql中的3个方法,我个人还是觉得最后自己写个脚本导入日志到mysql中比较好。

No comments :