linux mysql 写shell_Linux—编写shell脚本操作数据库执行sql
修改数据库数据
在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本的编写。
一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行。本篇文章,我们可以通过写shell脚本来执行数据库操作。
配置文件
创建 test_sql.properties 作为shell脚本的外部配置参数修改:
[andya@liunx01 sql_sh]$ vim test_sql.properties
# set parameters start
# 1 db name
dbName="db01"
# 2 the valueof net speeds and requests
netMaxSpeeds=500
netRequests="test.t1"
# 3 database info
## mysql address
MYSQL_ADDRESS="10.127.0.1"
## database name
MYSQL_DATABASE_NAME="db_test"
## 5.3 bdoc connect mysql user name
MYSQL_USER="user01"
## 5.4 bdoc connect mysql user password
MYSQL_PASSWD="123456"
## 5.5 mysql engine
DATABASE_ENGINE=mysql
shell脚本
创建shell脚本test_sql.sh
[andya@liunx01 sql_sh]$ vim test_sql.sh
#!/bin/bash
starttime=$(date +%Y-%m-%d\ %H:%M:%S)
echo "【Start to execute the script】, start time is: " $starttime >> test_sql_sh.log
# 1 read parameters
# ===================================================================
echo "------ test_sql.properties start------" >> test_sql_sh.log
source ./test_sql.properties
echo "Parameters: cat test_sql.properties" >> test_sql_sh.log
while read line
do
echo $line >> test_sql_sh.log ;
done < test_sql.properties
echo "------ test_sql.properties end------" >> test_sql_sh.log
# =================================================================
# 2 update database
# ========================
testSql="
SET @dbId=(SELECT id FROM ${MYSQL_DATABASE_NAME}.\`test_tb01\` WHERE \`NAME\` = \"${dbName}\");
INSERT INTO ${MYSQL_DATABASE_NAME}.\`test_tb02\` (\`NAME\`, \`DB_ID\` ,\`MAX_SPEEDS\`, \`NET_REQUESTS\`) VALUES ('${dbName}', @dbId, '${netMaxSpeeds}', '${netRequests}');
"
echo -e "\nSql: add hbase sql is: "${testSql} >> test_sql_sh.log
id=$(${DATABASE_ENGINE} -h${MYSQL_ADDRESS} -u${MYSQL_USER} -p${MYSQL_PASSWD} -D ${MYSQL_DATABASE_NAME} -e "${testSql}")
echo "Sql: Modify db data successfully, and insert db id is: "${id} >> test_sql_sh.log
endtime=`date +"%Y-%m-%d %H:%M:%S"`
echo "【Execute the script end】, end time is: " ${endtime} >> test_sql_sh.log
echo -e "\n" >> test_sql_sh.log
exit 0
脚本执行
./test_sql.sh
并且可以查看到输出日志test_sql_sh.log
另一种连接方式(待研究)
#!/bin/sh
mysql_engine=`which mysql`
${mysql_engine} -uroot -p123456 <>test.log
use db01;
select * from tb01 where id = 4;
EOF
exit 0
其中:
1)1>>test.log是重定向标准输出到test.log中,当然,也尝试去掉1,也是可以输出。
2)我们也可以使用2 >/dev/null重定向来屏蔽错误信息,2即为标准错误输出,对于linux来说/dev/null即为空设备,输入进去的数据即为丢弃。
3)EOF表示后续输入作为shell的输入,直到下一个EOF出现,再返回主进程shell中。
linux mysql 写shell_Linux—编写shell脚本操作数据库执行sql相关推荐
- Linux—编写shell脚本操作数据库执行sql
修改数据库数据 在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到sql脚本的编写. 一般我们会通过写sql脚本,然后将xxx.sql脚本放到数据库中进行source xxx.sql执行 ...
- 【Linux学习】如何编写Shell脚本调用企业微信api来发消息给企业微信成员?
一.前言 最近通过python实现了发送消息给企业微信的功能,参考链接: [Jenkins学习 ]如何编写Python脚本来调用企业微信的api通知企业微信成员关于Jenkins的编译结果? http ...
- shell脚本操作数据库插入数据
shell脚本实现添加用户 主方法:定义变量,调用函数. shell中的特殊变量 $#:脚本输入参数的个数 $? 上个命令的退出状态,或函数的返回值 $$ 当前Shell进程ID.对于 Shell 脚 ...
- linux脚本生成数字写入文本,4.2 编写Shell脚本(P80-85)——《Linux就该这么学》学习笔记16...
一.Shell 脚本命令的2种工作方式 交互式:输入一条(命令),执行一条 批处理:事先写好一个Shell脚本,一次性执行里面的所有命令 备注:Shell脚本不仅包含命令,还包含操作逻辑(if,for ...
- linux 脚本监听,Linux—编写shell脚本监控主机
编写SHELL脚本监控主机 1.用vi命令在/root目录是新建一个脚本文件sysmon.sh: 内容如下: #!/bin/bash dug=$(df -h | grep "/$" ...
- Linux环境下,通过shell脚本实现一键部署MySQL,并支持多种类型
Linux环境下一键部署MySQL脚本,支持多种类型 前言 一.使用前须知 二.使用方法 三.shell脚本内容 总结 前言 MySQL是目前最流行的关系型数据库管理系统之一,属于 Oracle ...
- linux 脚本中 -le,Linux中编写Shell脚本
目录 Shell Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等. 用户每输入一条命令,Shell就执行一条.这种从键盘输入命令,就可以立即得到回应的对话方式,称为交互的方式. ...
- Linux系统一键安全加固shell脚本编写思路
本次分享一下个人在对Linux系统一键安全加固shell脚本编写时的一些思路: Linux系统一键安全加固shell脚本编写思路 1.编写须知 1.1 脚本使用说明 1.2 主要功能说明: 1.3隐藏 ...
- shell脚本操作MYSQL
1.创建脚本test.sh !/bin/bash HOSTNAME="192.168.111.84" #数据库信息 PORT="3306" USERNAME=& ...
最新文章
- IDEA - 解决 Maven 初始化配置 web.xml 为 2.3 的问题
- python下载不了-python安装不了
- 152. 城市游戏【单调栈】
- python utf8_肿么在Python里使用UTF-8编码
- 2020年最全最简单KMP算法讲解
- 数据抽象能力---适合任何行业
- byte 类型_java知识总结(九):基本类型转换
- Dom-Attribute对象
- 谷歌大脑科学家 Caffe缔造者 贾扬清 微信讲座
- Java判断一个实体类对象实例的所有成员变量是否为空
- pda扫描枪屏幕_PDA扫描枪的介绍
- array 前端面试题_前端面试中的常见的算法问题
- springboot学习(下)
- 中国大地坐标系CGCS2000
- 【青龙面板】天翼云盘签到
- 解决AE在mac big sur系统上安装闪退打不开问题,最新After Effects 2021 for Mac中文直装(ae 2021 mac)详细安装教程
- python excel文件转换成字符串_python利用pandas将excel文件转换为txt文件的方法
- 小熊开发板STM32工具出现错误Error:an error occured while uploading data from the virtual partition 0xF1
- 【游戏美术】Unity中,场景的优化以及基本规范
- 多层高速PCB设计学习笔记(三) GND的种类及PCB中GND布线实战
热门文章
- c语言也能用模板方法模式?
- linux安装mysql启动失败的原因_爱在linux系统安装mysql启动失败如何处理?
- 代码拾取图片某一点的颜色_RPG游戏开发日志7:道具拾取与存放
- android webview js 交互框架,自定义android混合框架开发实践1:实现基础andorid和webview交互...
- 【渝粤教育】国家开放大学2019年春季 3896人文英语1 参考试题
- 【渝粤教育】 国家开放大学2020年春季 2412基础写作 参考试题
- 【渝粤教育】 国家开放大学2020年春季 2528监督学 参考试题
- 【渝粤题库】陕西师范大学201491 法学导论作业
- 【渝粤题库】国家开放大学2021春2044教育研究方法题目
- vb 发送html邮件,【VB】邮件发送功能