赞
踩
对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和调整。以下为具体的示例及其方法。
个人认为最好的方式:(在shell脚本以EOF开始,以EOF结束。)
唯一不好的地方是EOF开始,EOF结束的中间不能嵌套shell脚本的其他语句,只能是mysql的语法。)
- #!/bin/bash
-
- mysql -uroot -proot <<EOF (EOF 是mysql开始的符号)
-
- show databases;
-
- use test;
-
-
- insert into teacher(id,name) value(1,"wl");
-
- insert into student(id,name) values(1,"renyuz");
- EOF (EOF 是mysql开始的符号)
-
-
- mysql -uroot -proot <<EOF
-
- use test;
- insert into student(id,name) values(22,"jhjjyu");
-
- EOF (EOF 是mysql开始的符号)
-
- echo "hell world !!"(shell脚本的语法)

下面列出了其他几种方法,上面的方法是方法4.
1、将SQL语句直接嵌入到shell脚本文件中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
|
相关命令参考:http://blog.csdn.net/u011630575/article/details/52143264
2、命令行调用单独的SQL文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
3、使用管道符调用SQL文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
4、shell脚本中MySQL提示符下调用SQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
5、shell脚本中变量输入与输出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。