linux下执行spl脚本,Linux—编写shell脚本操作数据库执行sql

5268f80b9b1e01f982625ef6fac83ca1.png

修改数据库数据

??在升级应用时,我们常常会遇到升级数据库的问题,这就涉及到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

Linux—编写shell脚本操作数据库执行sql

标签:shell   code   echo   数据库   cat   数据库数据   insert   数据库操作   shel

1428d0e076c3959ab11d28a39bc84fab.png

5268f80b9b1e01f982625ef6fac83ca1.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/Andya/p/12524370.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值