Type ''help;'' or ''h'' for help. Type ''c'' to clear the buffer.
mysql> quit
Bye
这样就好多了,可以不必在脚本中携带用户密码.
3、向服务器发送命令
在脚本文件中,我们设置用户登录mysql服务器后,通过EOF分隔符把SQL语句重定向到mysql中,从而显示数据库信息:
[root@wzp ~]# cat .passwd-51cto
echo 51cto
[root@wzp ~]# cat sendto-mysql
#!/bin/bash
mysql=`which mysql`
passwd=`$HOME/.passwd-51cto`
$mysql -u 51cto -p$passwd <<EOF
! echo ''display the databases:''
SHOW DATABASES;
USE test;
! echo ''display the table of 51cto:''
SELECT * FROM 51cto;
EOF
[root@wzp ~]# ./sendto-mysql
display the databases:
Database
information_schema
test
display the table o
f 51cto:
id name
2 163.com
3 qq.com
[root@wzp ~]#
在mysql中,我们查看如上的内容为:
mysql> show databases;
--------------------
| Database |
--------------------
| information_schema |
| test |
--------------------
2 rows in set (0.00 sec)
mysql> select * from 51cto;
------ ---------
| id | name |
------ ---------
| 2 | 163.com |
| 3 | qq.com |
------ ---------
2 rows in set (0.00 sec)
从中我们发现显示的内容不完全一致,少了框框.那是mysql程序检测到使用重定向到mysql命令,
它只是返回原始数据,而不是在数据周围创建ASCII符号框.当然,这样的结果对于我们抽取单个数据非常方便!呵呵 本文出自 “twenty_four” 博客,请务必保留此出处http://twentyfour.blog.51cto.com/945260/505680
|