linux运行qsql,linux系统下怎么在终端运行sql语句
匿名用户
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语句相关推荐
- mac中sublime运行html,Mac系统下Sublime Text直接运行JavaScript调试控制台
两种方式 1.利用JSC添加JavaScript控制台 其实在 OSX 里有一个javascript控制台程序,它在 /System/Library/Frameworks/JavaScriptCore ...
- powershell下使用linux命令,Win10系统下使用Windows PowerShell运行ABD命令的方法
不少朋友将电脑系统升级到最新的win10正式版后,发现无法在ADB目录空白处右键"在此处打开命令窗口"CMD窗口了,需要运行还得去修改注册表,显然有些麻烦.这该怎么办呢?今天,小编 ...
- linux搭建python运行环境_centos运行.py centos5.5下搭建python开发运行环境 - Linux - 服务器之家...
centos运行.py centos5.5下搭建python开发运行环境 发布时间:2017-04-28 来源:服务器之家 我们知道ython可以在windows.linux.android运行了,但 ...
- Win系统下用Eclipse中运行远程hadoop MapReduce程序出现Permission denied错误
Win系统下用Eclipse中运行远程hadoop MapReduce程序出现报错 WARNING: job_local1833185613_0001 org.apache.hadoop.securi ...
- 解决系统下以管理员身份运行的程序接收不到拖放文件消息[WM_DROPFILES]问题的方法
大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开.最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP.Windows Serv ...
- 解决Win7系统下以管理员身份运行的程序接收不到拖放文件消息[WM_DROPFILES]问题的方法
大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开.最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP.Windows Serv ...
- oracle tcpdump生成bpf,[20140212]linux下使用tcpdump抓取sql语句
[20140212]linu下使用tcpdump抓取sql语句.txt 我们生产系统问题多多,经常要跟踪用户执行的sql语句,当出现问题时要跟踪比较麻烦,我需要一个快捷的方式"看到" ...
- 根据当前记录获取前一条与下一条记录常用 sql语句
为什么80%的码农都做不了架构师?>>> 1.oracle实现主要是用分析函数 lag与lead SELECT * FROM (SELECT id, ...
- vnc连接linux使用教程_linux系统下vnc 的配置和使用方法
linux系统下vnc 的配置和使用方法 发布时间:2013-06-01 17:35:28 作者:佚名 我要评论 VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer):另 ...
最新文章
- c# 学习笔记 (3) 窗体单例模式
- Qt中的QMainWindow
- elasticSearch6源码分析(7)node
- subquery unnesting、Subquery unnesting and View Merge
- java assert可以检查exception吗_检查胃病一定要做胃镜吗?这五种检查也可以筛查胃病疾病...
- hidl 原理分析_一个 health service 不生效问题引出的一点知识
- python 容器类型_Python容器类型公共方法总结
- gamma校正_Log与Gamma校正视频
- D37 682. Baseball Game
- Ubuntu16.04LTS安装XMind8并创建运行图标
- idea控制台搜索功能
- getTime()的兼容性(ios)
- linux操作系统基础教程第二版附录答案,Linux操作系统(第2版) 课后习题答案
- Java飞机大战 项目-源码
- 使用微PE工具箱制作U盘启动盘
- 如何共享OneNote笔记本
- Linux操作手机端
- Win 10 部分软件的界面模糊问题
- wordpress 调用指定页面内容详解2 get_children()
- 数字电路——余3循环码