匿名用户

1级

2015-01-28 回答

主要有以下几种方法:

1、将SQL语句直接嵌入到shell脚本文件中

代码如下:

--演示环境

[root@SZDB ~]# more /etc/issue

CentOS release 5.9 (Final)

Kernel \r on an \m

root@localhost[(none)]> show variables like 'version';

+---------------+------------+

| Variable_name | Value |

+---------------+------------+

| version | 5.6.12-log |

+---------------+------------+

[root@SZDB ~]# more shell_call_sql1.sh

#!/bin/bash

# Define log

TIMESTAMP=`date +%Y%m%d%H%M%S`

LOG=call_sql_${TIMESTAMP}.log

echo "Start execute sql statement at `date`." >>${LOG}

# execute sql stat

mysql -uroot -p123456 -e "

tee /tmp/temp.log

drop database if exists tempdb;

create database tempdb;

use tempdb

create table if not exists tb_tmp(id smallint,val varchar(20));

insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');

select * from tb_tmp;

notee

quit"

echo -e "\n">>${LOG}

echo "below is output result.">>${LOG}

cat /tmp/temp.log>>${LOG}

echo "script executed successful.">>${LOG}

exit;

[root@SZDB ~]# ./shell_call_sql1.sh

Logging to file '/tmp/temp.log'

+------+-------+

| id | val |

+------+-------+

| 1 | jack |

| 2 | robin |

| 3 | mark |

+------+-------+

Outfile disabled.

2、命令行调用单独的SQL文件

代码如下:

[root@SZDB ~]# more temp.sql

tee /tmp/temp.log

drop database if exists tempdb;

create database tempdb;

use tempdb

create table if not exists tb_tmp(id smallint,val varchar(20));

insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');

select * from tb_tmp;

notee

[root@SZDB ~]# mysql -uroot -p123456 -e "source /root/temp.sql"

Logging to file '/tmp/temp.log'

+------+-------+

| id | val |

+------+-------+

| 1 | jack |

| 2 | robin |

| 3 | mark |

+------+-------+

Outfile disabled.

3、使用管道符调用SQL文件

代码如下:

[root@SZDB ~]# mysql -uroot -p123456

Logging to file '/tmp/temp.log'

id val

1 jack

2 robin

3 mark

Outfile disabled.

#使用管道符调用SQL文件以及输出日志

[root@SZDB ~]# mysql -uroot -p123456 /tmp/temp.log

[root@SZDB ~]# more /tmp/temp.log

Logging to file '/tmp/temp.log'

id val

1 jack

2 robin

3 mark

Outfile disabled.

4、shell脚本中MySQL提示符下调用SQL

代码如下:

[root@SZDB ~]# more shell_call_sql2.sh

#!/bin/bash

mysql -uroot -p123456 <

source /root/temp.sql;

select current_date();

delete from tempdb.tb_tmp where id=3;

select * from tempdb.tb_tmp where id=2;

EOF

exit;

[root@SZDB ~]# ./shell_call_sql2.sh

Logging to file '/tmp/temp.log'

id val

1 jack

2 robin

3 mark

Outfile disabled.

current_date()

2014-10-14

id val

2 robin

5、shell脚本中变量输入与输出

代码如下:

[root@SZDB ~]# more shell_call_sql3.sh

#!/bin/bash

cmd="select count(*) from tempdb.tb_tmp"

cnt=$(mysql -uroot -p123456 -s -e "${cmd}")

echo "Current count is : ${cnt}"

exit

[root@SZDB ~]# ./shell_call_sql3.sh

Warning: Using a password on the command line interface can be insecure.

Current count is : 3

[root@SZDB ~]# echo "select count(*) from tempdb.tb_tmp"|mysql -uroot -p123456 -s

3

[root@SZDB ~]# more shell_call_sql4.sh

#!/bin/bash

id=1

cmd="select count(*) from tempdb.tb_tmp where id=${id}"

cnt=$(mysql -uroot -p123456 -s -e "${cmd}")

echo "Current count is : ${cnt}"

exit

[root@SZDB ~]# ./shell_call_sql4.sh

Current count is : 1

linux运行qsql,linux系统下怎么在终端运行sql语句相关推荐

  1. mac中sublime运行html,Mac系统下Sublime Text直接运行JavaScript调试控制台

    两种方式 1.利用JSC添加JavaScript控制台 其实在 OSX 里有一个javascript控制台程序,它在 /System/Library/Frameworks/JavaScriptCore ...

  2. powershell下使用linux命令,Win10系统下使用Windows PowerShell运行ABD命令的方法

    不少朋友将电脑系统升级到最新的win10正式版后,发现无法在ADB目录空白处右键"在此处打开命令窗口"CMD窗口了,需要运行还得去修改注册表,显然有些麻烦.这该怎么办呢?今天,小编 ...

  3. linux搭建python运行环境_centos运行.py centos5.5下搭建python开发运行环境 - Linux - 服务器之家...

    centos运行.py centos5.5下搭建python开发运行环境 发布时间:2017-04-28 来源:服务器之家 我们知道ython可以在windows.linux.android运行了,但 ...

  4. Win系统下用Eclipse中运行远程hadoop MapReduce程序出现Permission denied错误

    Win系统下用Eclipse中运行远程hadoop MapReduce程序出现报错 WARNING: job_local1833185613_0001 org.apache.hadoop.securi ...

  5. 解决系统下以管理员身份运行的程序接收不到拖放文件消息[WM_DROPFILES]问题的方法

    大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开.最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP.Windows Serv ...

  6. 解决Win7系统下以管理员身份运行的程序接收不到拖放文件消息[WM_DROPFILES]问题的方法

    大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开.最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP.Windows Serv ...

  7. oracle tcpdump生成bpf,[20140212]linux下使用tcpdump抓取sql语句

    [20140212]linu下使用tcpdump抓取sql语句.txt 我们生产系统问题多多,经常要跟踪用户执行的sql语句,当出现问题时要跟踪比较麻烦,我需要一个快捷的方式"看到" ...

  8. 根据当前记录获取前一条与下一条记录常用 sql语句

    为什么80%的码农都做不了架构师?>>>    1.oracle实现主要是用分析函数 lag与lead SELECT * FROM (SELECT         id,       ...

  9. vnc连接linux使用教程_linux系统下vnc 的配置和使用方法

    linux系统下vnc 的配置和使用方法 发布时间:2013-06-01 17:35:28   作者:佚名   我要评论 VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer):另 ...

最新文章

  1. c# 学习笔记 (3) 窗体单例模式
  2. Qt中的QMainWindow
  3. elasticSearch6源码分析(7)node
  4. subquery unnesting、Subquery unnesting and View Merge
  5. java assert可以检查exception吗_检查胃病一定要做胃镜吗?这五种检查也可以筛查胃病疾病...
  6. hidl 原理分析_一个 health service 不生效问题引出的一点知识
  7. python 容器类型_Python容器类型公共方法总结
  8. gamma校正_Log与Gamma校正视频
  9. D37 682. Baseball Game
  10. Ubuntu16.04LTS安装XMind8并创建运行图标
  11. idea控制台搜索功能
  12. getTime()的兼容性(ios)
  13. linux操作系统基础教程第二版附录答案,Linux操作系统(第2版) 课后习题答案
  14. Java飞机大战 项目-源码
  15. 使用微PE工具箱制作U盘启动盘
  16. 如何共享OneNote笔记本
  17. Linux操作手机端
  18. Win 10 部分软件的界面模糊问题
  19. wordpress 调用指定页面内容详解2 get_children()
  20. 数字电路——余3循环码

热门文章

  1. 从一份配置清单详解Nginx服务器配置
  2. 隐形矫正计算机软件,隐形矫治器治疗流程和原理
  3. 数据库简明教程-高琪-专题视频课程
  4. JAVA小练习102——List接口的特有方法(增删改)
  5. 模仿QQ左滑删除当前会话列表
  6. 深圳中厂Java二面
  7. iPhone 3G超速开箱实测
  8. 智能商业 --未来已来
  9. PHP 零基础入门笔记(3):PHP 变量和常量
  10. ansa打开catia文件_据说这是最高效的前处理软件——ANSA