iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Shell脚本中执行sql语句操作mysql的5种方法
  • 571
分享到

Shell脚本中执行sql语句操作mysql的5种方法

种方法语句脚本 2022-06-04 21:06:49 571人浏览 安东尼
摘要

对于自动化运维,诸如备份恢复之类的,DBA经常需要将sql语句封装到shell脚本。本文描述了在linux环境下Mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美

对于自动化运维,诸如备份恢复之类的,DBA经常需要将sql语句封装到shell脚本。本文描述了在linux环境下Mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和调整。以下为具体的示例及其方法。

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 </root/temp.sql  

Logging to file '/tmp/temp.log'  

id      val  

1       jack  

2       robin  

3       mark  

Outfile disabled.  

  

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

[root@SZDB ~]# mysql -uroot -p123456 </root/temp.sql >/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 <<EOF  

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  

  

#以上脚本演示中,作抛砖引玉只用,对于输出的结果不是很规整友好,需要进一步改善和提高。

您可能感兴趣的文档:

--结束END--

本文标题: Shell脚本中执行sql语句操作mysql的5种方法

本文链接: https://www.lsjlt.com/news/18267.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Shell脚本中怎么执行sql语句
    本篇文章为大家展示了Shell脚本中怎么执行sql语句,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、将SQL语句直接嵌入到shell脚本文件中代码如下:--演示环境  [root@SZ...
    99+
    2023-06-09
  • mysql执行sql脚本文件的方法
    小编给大家分享一下mysql执行sql脚本文件的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql执行sql脚本文件的...
    99+
    2024-04-02
  • navicat执行sql语句的方法
    小编给大家分享一下navicat执行sql语句的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!首先要在navicat的【查询编辑器】中编写可执行的sql语句当我们在【查询编辑器】中编写完S...
    99+
    2024-04-02
  • Linux中执行shell脚本的方法有哪些
    本篇内容介绍了“Linux中执行shell脚本的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!bash shell 脚本的方法有多...
    99+
    2023-06-09
  • SpringBoot启动执行sql脚本的3种方法实例
    目录背景配置application.yml文件自定义DataSourceInitializer Bean启动时执行方法Springboot自动执行sql文件总结背景 项目里后端需要计...
    99+
    2024-04-02
  • 执行Shell脚本的4种方法及区别是什么
    这篇文章主要讲解了“执行Shell脚本的4种方法及区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“执行Shell脚本的4种方法及区别是什么”吧!执行shell脚本有以下几种方式1、相...
    99+
    2023-06-09
  • Django执行指定脚本的几种方法
    目录前言Django Shell自定义CommandDjango extensions总结前言 用Django写项目,遇到临时需要处理数据库的问题时,会考虑直接让脚本在项目环境中运行...
    99+
    2024-04-02
  • shell脚本编程if语句的使用方法
    本篇内容主要讲解“shell脚本编程if语句的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell脚本编程if语句的使用方法”吧!我不是研究linux下的东西的,所以这里只对shel...
    99+
    2023-06-09
  • sql语句在mysql中是怎么执行的
    这篇文章主要介绍了sql语句在mysql中是怎么执行的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、mysql架构分析下面是mysql的...
    99+
    2024-04-02
  • Spring Boot中自动执行sql脚本的方法实例
    目录背景实现核心实现方法注意总结说明:所有的代码基于SpringBoot 2.0.3版本 背景 在应用程序启动后,可以自动执行建库、建表等SQL脚本.下文中以要自动化执行people...
    99+
    2024-04-02
  • 让Python脚本暂停执行的几种方法
    转自:让Python脚本暂停执行的几种方法  1.time.sleep(secs)      参考文档原文:   Suspend execution for the given number of seconds. The a...
    99+
    2023-01-31
    脚本 几种方法 Python
  • 在shell脚本中连接mysql并进行相关操作
    在实际使用中,有时候需要定时的对数据库进行一些重复的操作。这样通过脚本的方式能更好的降低出错率并提高速度 连接数据库,我们可以封装一个函数来操作。方便进行数据的传递。将相关参数进度对应的传递。分析脚本我们可以知道就是将sql脚本以he...
    99+
    2023-08-19
    mysql 数据库 sql
  • 在Linux系统中Shell脚本使用if语句的方法
    这篇文章主要讲解了“在Linux系统中Shell脚本使用if语句的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在Linux系统中Shell脚本使用if语句的方法”吧!Bourne Sh...
    99+
    2023-06-13
  • 一条SQL语句在MySQL中怎么执行的
    小编给大家分享一下一条SQL语句在MySQL中怎么执行的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一 MySQL 基础架构分...
    99+
    2024-04-02
  • MySQL中怎么使用LOOP语句执行重复操作
    在MySQL中,可以使用WHILE循环语句来执行重复操作,示例如下: DELIMITER // CREATE PROCEDURE ...
    99+
    2024-04-30
    MySQL
  • 批量执行sql语句的方法是什么
    批量执行sql语句的方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 代码如下: DECLARE @MyCo...
    99+
    2024-04-02
  • java jdbc执行sql语句的方法是什么
    在Java中使用JDBC执行SQL语句的方法主要有以下几种:1. 使用Statement对象执行SQL语句:```javaState...
    99+
    2023-09-27
    java jdbc sql
  • shell脚本编程中case语句的实例用法
    本篇内容介绍了“shell脚本编程中case语句的实例用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!case语句是用来实现多个if..e...
    99+
    2023-06-09
  • GO语言在Linux下同步执行Shell脚本的方法是什么?
    在Linux系统中,Shell脚本是一种非常常见的脚本语言,可以用于快速地执行一些常见操作,比如创建文件、删除文件、修改文件权限等等。而GO语言是一种非常流行的编程语言,它可以用于开发各种类型的应用程序,包括服务器应用、桌面应用、移动应用...
    99+
    2023-10-25
    同步 shell linux
  • 怎么在Shell脚本中执行语法检查调试模式
    这篇文章将为大家详细讲解有关怎么在Shell脚本中执行语法检查调试模式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。启用 verbose 调试模式在进入本指导的重点之前,让我们简要地探索下 verbose...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作