[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mysql
in Batch Mode
In the previous sections, you used mysql
interactively to enter
queries and view the results. You can also run mysql
in batch
mode. To do this, put the commands you want to run in a file, then
tell mysql
to read its input from the file:
shell> mysql < batch-file |
If you are running mysql
under Windows and have some special
characters in the file that cause problems, you can do this:
dos> mysql -e "source batch-file" |
If you need to specify connection parameters on the command line, the command might look like this:
shell> mysql -h host -u user -p < batch-file Enter password: ******** |
When you use mysql
this way, you are creating a script file, then
executing the script.
If you want the script to continue even if some of the statements in it
produce errors, you should
use the --force
command-line option.
Why use a script? Here are a few reasons:
mysql
to execute it again.
shell> mysql < batch-file | more |
shell> mysql < batch-file > mysql.out |
cron
job. In this case, you must use batch mode.
The default output format is different (more concise) when you run
mysql
in batch mode than when you use it interactively. For
example, the output of SELECT DISTINCT species FROM pet
looks like
this when mysql
is run interactively:
+---------+ | species | +---------+ | bird | | cat | | dog | | hamster | | snake | +---------+ |
In batch mode, the output looks like this instead:
species bird cat dog hamster snake |
If you want to get the interactive output format in batch mode, use
mysql -t
. To echo to the output the commands that are executed, use
mysql -vvv
.
You can also use scripts from the mysql
prompt by
using the source
command:
mysql> source filename; |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |