MySQL中文参考手册--8.MySQL教程--8.6 以批处理模式使用mysql
在前面的章节中,你交互式地使用mysql
输入查询并且查看结果。你也可以以批模式运行mysql
。为了做到这些,把你想要运行的命令放在一个文件中,然后告诉mysql
从文件读取它的输入:
shell> mysql < batch-file
如果你需要在命令行上指定连接参数,命令可能看起来像这样:
shell> mysql -h host -u user -p < batch-fileEnter password: ********
当你这样使用mysql
时,你正在创建一个脚本文件,然后执行脚本。
为什么要使用一个脚本?有很多原因:
- 如果你重复地运行查询(比如说,每天或每周),把它做成一个脚本使得你在每次执行它时避免重新键入。
- 你能通过拷贝并编辑脚本文件从类似的现有的查询生成一个新查询。
- 当你正在开发查询时,批模式也是很有用的,特别对多行命令或多行语句序列。如果你犯了一个错误,你不必重新打入所有一切,只要编辑你的脚本来改正错误,然后告诉
mysql
再次执行它。 - 如果你有一个产生很多输出的查询,你可以通过一个分页器而不是盯着它翻屏到你屏幕的顶端来运行输出:
shell> mysql < batch-file more
- 你能捕捉输出到一个文件中进行更一步的处理:
shell> mysql < batch-file > mysql.out
- 你可以散发脚本给另外的人,因此他们也能运行命令。
- 一些情况不允许交互地使用,例如, 当你从一个
cron
任务中运行查询时。在这种情况下,你必须使用批模式。
当你以批模式运行mysql
时,比起你交互地使用它时,其缺省输出格式是不同的(更简明些)。例如,当交互式运行SELECT DISTINCT species FROM pet
时,输出看起来像这样:
+---------+ species +---------+ bird cat dog hamster snake +---------+
但是当以批模式运行时,像这样:
speciesbirdcatdoghamstersnake
如果你想要在批模式中得到交互的输出格式,使用mysql -t
。为了回显以输出被执行的命令,使用mysql -vvv
。