1 登录到服务器
mysql mytest -u test -p test
或者
使用$HOME/.my.cnf文件来读取特定的启动命令和设置。其中一项设置就是用户启动的mysql会话的默认密码。
cat .my.cnf
[client]
password = test
chmod 400 .my.cnf
chmod命令将.my.cnf文件限制为只能由本人浏览。
2 向服务器发送命令
- 发送单个命令
将命令作为mysql命令行的一部分,用-e选项
cat mtest1
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL mytest -u test -e 'select * from employees'
SQL命令的结果返回给shell脚本,脚本会将它们显示在STDOUT中。
*发送多条SQL命令
利用文件重定向,在shell脚本中重定向多行内容,定义结束字符串(EOF)。
cat mtest2
#!/bin/bash
MYSQL=$(which mysql)
$MYSQL mytest -u test <<EOF
show tables;
select * from employees where salary > 40000;
EOF
cat mtest3
#!/bin/bash
MYSQL=$(which mysql)
if [ $# -ne 4 ]
then
echo "Usage: mtest3 empid lastname firestname salary"
else
statement="INSERT INTO employees VALUES ($1, '$2', '$3', $4)"
$MYSQL mytest -u test << EOF
$statement
EOF
if [ $? -eq 0 ]
then
echo Data successfully added
else
echo Problem adding data
fi
fi
3 格式化数据
cat mtest4
MYSQL=$(which mysql)
dbs=$($MYSQL mytest -u test -Bse 'show databases')
for db in $dbs
do
echo $db
done
-B选项指定mysql程序工作在批处理模式运行。
-s选项用于禁止输出列标题和格式化符号。
-X选项可以输出xml格式