Linux脚本连接数据库并执行SQL语句

“盈盈楼上女,皎皎当窗牖”
最近收到一个任务就是,需要写一个自动的脚本,把数据查出来,并导出数据文件;
具体步骤是:1:根据基表生成当天的日表;
2:往生成的日表插入数据;
3:把插入日表的数据导出来;
具体脚本及说明如下:

#!/bin/bash
#数据库连接配置
#ip地址
DBHOST="192.168.1.1"
#端口
DBPORT="3306"
#用户名
DBUSER="root"
#密码
DBPW="root"
#数据库名
DBNAME="test"
#输出文件地址,文件名data_加上日期.AVL,例如data_20180809.AVL
outfilepath="/appdata/mysql/data_"`date "+%Y%m%d"`".AVL"
#基表
tableName="testTable"
#按基表生成的日表,例如testTable_20180809
tableNameNew=${tableName}_`date "+%Y%m%d"`
#建表语句
createTableSql="create table ${tableNameNew} like ${tableName}"
#插入语句
insertSql="INSERT INTO ${tableNameNew} SELECT *

FROM
        tableName
      ;"
#导出文件语句
exportSql="SELECT
        * 
FROM
        ${tableNameNew} a INTO OUTFILE ${outfilepath};"

#建表
function createTable()
{
#这的$1和$2表示再调用方法传进来的参数
                `mysql -h"${DBHOST}" -P"${DBPORT}" -u"${DBUSER}" -p"${DBPW}" -D"$1" -e"$2"`
}

#插入
function insertTable()
{
    `mysql -h"${DBHOST}" -P"${DBPORT}" -u"${DBUSER}" -p"${DBPW}" -D"$1" -e"$2"`
}

#导出
function exportTable()
{
                `mysql -h"${DBHOST}" -P"${DBPORT}" -u"${DBUSER}" -p"${DBPW}" -D"$1" -e"$2"`
}

#执行建表
createTable "${DBNAME}" "${createTableSql}"

#执行插入sql
insertTable "${DBNAME}" "${insertSql}"

#导出数据文件
exportTable "${DBNAME}" "${exportSql}"

你可能感兴趣的:(shell)