背景:
在linux执行mysql语句对于技术人员来讲是家常便饭,但对技术支持或者小白来讲,步骤复杂且执行出错概率大。要么鞭笞提升人员素质,要么只能从执行方式入手了。
思路:
本质是通过mysql-client和shell脚本来时实现文件执行
mysql -h 数据库IP -P 数据库端口 -u数据库用户 -p数据库密码 -e "mysql语句"
data.conf配置文件内容
server_host=127.0.0.1
server_port=9906
mysql_user=tester
mysql_pwd=123456
database_name=test_Database
all_uesr_num=10000
department_headcount=100
具体实现内容:
检查读取 data.conf 配置文件中的参数信息并执行相应的操作。
请将代码中的 mysql语句 替换为你实际需要执行的 MySQL 语句并进行执行
#!/bin/sh
#####获取当前系统信息
echo "=========================================="
curPath=$(dirname $(readlink -f "$0"))
#echo "当前目录:[ $curPath ]"
nowtime=$(date "+%Y-%m-%d %H:%M:%S")
echo "当前时间:[ $nowtime ]"
####检测是否有配置文件
if [ -f "./data.conf" ];then
echo "[初始化检查]检查配置文件存在 ..........[success]"
else
echo "[初始化检查]缺少配置文件data.conf或未在指定目录运行 ..........[failure]"
echo "[初始化检查]为避免对系统造成破坏,本次将退出!"
exit 0
fi
server_host=""
server_port=""
mysql_user=""
mysql_pwd=""
database_name=""
all_uesr_num=""
department_headcount=""
server_host=`sed '/^server_host=/!d;s/.*=//' ./data.conf`
server_port=`sed '/^server_port=/!d;s/.*=//' ./data.conf`
mysql_user=`sed '/^mysql_user=/!d;s/.*=//' ./data.conf`
mysql_pwd=`sed '/^mysql_pwd=/!d;s/.*=//' ./data.conf`
database_name=`sed '/^database_name=/!d;s/.*=//' ./data.conf`
all_uesr_num=`sed '/^all_uesr_num=/!d;s/.*=//' ./data.conf`
department_headcount=`sed '/^department_headcount=/!d;s/.*=//' ./data.conf`
echo ""
echo "=========================================="
echo "[配置信息检查]数据库服务器地址:$server_host"
echo "[配置信息检查]数据库服务器端口:$server_port"
echo "[配置信息检查]数据库服务器用户:$mysql_user"
echo "[配置信息检查]数据库库名:$database_name"
echo "[配置信息检查]总共多少个用户:$all_uesr_num"
echo "[配置信息检查]每个部门分配多少人:$department_headcount"
if [[ $mysql_pwd == "" ]]; then
echo ""
echo "=========================================="
echo "[配置信息检查-密码检查]未检测到mysql_pwd..........failed"
echo "启动失败!本次将退出 ..........failed"
echo "======================================================="
exit 0
fi
if [[ $server_host == "" || $server_port == "" || $database_name == "" || $all_uesr_num == "" || $department_headcount == "" || $mysql_user == "" ]]; then
echo ""
echo "=========================================="
echo "Version: j1.0.1"
echo "配置文件参数有误,请检查配置信息"
echo "启动失败!本次将退出 ..........failed"
echo "======================================================="
exit 0
fi
echo""
echo "=========================================="
echo "[数据铺底]开始执行数据铺底"
############################
#在这里将自己的数据语句填入#
############################
mysql -h $server_host -P $(($server_port+0)) -u$mysql_user -p$mysql_pwd -e "use testDatabases;DROP PROCEDURE IF EXISTS test_initData;CREATE PROCEDURE test_initData() BEGIN ...... END......"
if [[ $? -eq 0 ]]
then
echo "[数据铺底] 成功..........success"
else
echo "[数据铺底] 过程出现异常..........failed"
fi