mysql5.1学习笔记2——sql语句
时间:2006-07-14 来源:jingzhi
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行对应。
3.5. 在批处理模式下使用mysql
在前面的章节中,你交互式地使用mysql输入查询并且查看结果。你也可以以批模式运行mysql。为了做到这些,把你想要运行的命令放在一个文件中,然后告诉mysql从文件读取它的输入:shell> mysql < batch-file
如果在Windows下运行mysql,并且文件中有一些可以造成问题的特殊字符,可以这样操作:
C:\> mysql -e "source batch-file"
如果你需要在命令行上指定连接参数,命令应为:
shell> mysql -h host -u user -p < batch-file
Enter password: ********
当这样操作mysql时,则创建一个脚本文件,然后执行脚本。
如果你想在语句出现错误的时候仍想继续执行脚本,则应使用--force命令行选项。
为什么要使用一个脚本?有很多原因:
- 如果你需要重复运行查询(比如说,每天或每周),可以把它编成一个脚本,则每次执行时不必重新键入。
- 可以通过拷贝并编辑脚本文件从类似的现有的查询生成一个新查询。
- 当你正在开发查询时,批模式也是很有用的,特别对多行命令或多语句命令序列。如果你犯了一个错误,你不必重新输入所有内容,只需要编辑脚本来改正错误,然后告诉mysql再次执行脚本。
- 如果你有一个产生多个输出的查询,你可以通过一个分页器而不是盯着它翻屏到屏幕的顶端来运行输出:
· shell> mysql < batch-file | more
- 你可以捕捉文件中的输出以便进行进一步的处理:
· shell> mysql < batch-file > mysql.out
- 你可以将脚本分发给另外的人,以便他们也能运行命令。
- 某些情况不允许交互地使用,例如, 当你从一个cron任务中运行查询时。在这种情况下,你必须使用批模式。
当你以批模式运行mysql时,比起你交互地使用它时,其默认输出格式是不同的(更简明些)。
相关阅读 更多 +