<linux shell 攻略> 庖丁解牛 mysql数据库脚本管理系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://dba10g.blog.51cto.com/764602/1610703


操作界面


wKiom1TPEynz5sHJAAJnQpUCZlg554.jpg


这个小系统一共包含4个脚本

sh
功能
备注
oneKey.sh 主程序,调用其他程序,对外提供功能

menu.sh 勾画菜单

function.sh 提供操作数据库接口

valid.sh 操作mysql数据库,验证数据


menu.sh 

画字符菜单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
function  print_main_menu(){
cat  <<EOF
#######################################
#    1)创建数据库                  #
#    2)导入电商端数据              #
#    3)创建电商端数据库并导入数据  #
#    4)验证电商端数据数据有效性    #
#    5)删除数据库                  #
#    6)打印菜单                    #
#    7)退出                        #
#######################################
EOF
}


function.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash
#作者:
#版本:v1.0
#用途:创建mysql 数据库和数据库表
 
 
#创建数据库 4个必须参数(user,password,database_name,charset)
function  create_database_01(){
     USER= "$1"
     PASSWORD= "$2"
     IP= "$3"
     DATEBASE_NAME= "$4"
     DATABASE_CHARSET= "utf8"
     mysql -h $IP -u $USER -p$PASSWORD <<EOF 2> /dev/null
     create database $DATEBASE_NAME charset=$DATABASE_CHARSET;
EOF
 
     if  [[ $? - eq  0 ]];  then
             echo  "数据库" $DATEBASE_NAME "创建成功"
         else
             echo  "数据库" $DATEBASE_NAME "创建失败"
             exit  1;
     fi
}
 
#扫描地区目录中数据库文件夹,按顺序执行
function  init_database_02(){
     USER= "$1"
     PASSWORD= "$2"
     IP= "$3"
     DATEBASE_NAME= "$4"
     AREACODE= "$5"
     while  read  line; 
     do
         mysql -h $IP -u $USER -p$PASSWORD $DATEBASE_NAME <$line 2> /dev/null
     done  < <( ls  ./$AREACODE/*.sql -rt)
 
     if  [[ $? - eq  0 ]];  then
             echo  "往" $DATEBASE_NAME "导入数据成功"
         else
             echo  "往" $DATEBASE_NAME "导入数据失败"
             exit  1;
     fi
}
 
#删除数据库
function  drop_database_02(){
     USER= "$1"
     PASSWORD= "$2"
     IP= "$3"
     DATEBASE_NAME= "$4"
     mysql -h $IP -u $USER -p$PASSWORD <<EOF 2> /dev/null
     drop database $DATEBASE_NAME;
EOF
 
     if  [[ $? - eq  0 ]];  then
             echo  "数据库" $DATEBASE_NAME "删除成功"
         else
             echo  "数据库" $DATEBASE_NAME "删除失败"
             exit  1;
     fi
}
 
 
#读取参数
function  readstdin(){
             read  -p  "please input ip[localhost]:"  ip
             if  [[ -z  "$ip"  ]];  then
                 ip= "localhost"
             fi
             read  -p  "please input db login user[root]:"  username
             if  [[ -z  "$username"  ]];  then
                 username= "root"
             fi
             read  -p  "please input db login password:"  password
             read  -p  "please input db name:"  dbname    
 
}


valida.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash
dbname= "test_jd_dspt_wh"
nsrsbh= "420112568371402"
 
mysql= "mysql -h 192.168.15.9 -u root -p123456 $dbname"
#$mysql "use $dbname"
sql=" select  count(nsrsbh) into @v01 from dj_nsrxx 
where nsrsbh=$nsrsbh;
select  if (@v01<=0, '纳税人识别号在dj_nsrxx表中没有记录' ,
                   '验证01[纳税人识别号在dj_nsrxx表中存在]验证通过!!!' );
select  dsptbm into @dsptbm  from dj_nsrxx where nsrsbh=$nsrsbh;
select  pt.dsptmc into @dsptmc from dj_dzswpt_kz kz ,dj_dzswpt pt 
where  kz. id  =pt. id   and kz.dsptbm=@dsptbm;
select  if (@dsptmc is not null,concat( '验证02通过纳税人电商平台信息:' ,@dsptmc), '验证02[纳税人电商平台信息为空]验证不通过!!!' );
 
select  hy_dm into @vhy  from dj_nsrxx where nsrsbh=@vnsrsbh;
select  kpzt into @vkpzt  from dj_nsrxx where nsrsbh=@vnsrsbh;
select  nsrzt_dm into @vnsrzt from dj_nsrxx where nsrsbh=@vnsrsbh;
select  if (@vhy!=5200, '纳税人行业代码不等于5200' , '验证03[纳税人行业代码等于5200]验证通过!!!' );
select  if (@vnsrzt!=21, '纳税人状态代码不等于21' , '验证04[纳税人状态代码等于21]验证通过!!!' );
select  if (@vkpzt!=1, '纳税人开票状态不等于1' , '验证05[纳税人开票状态等于1]验证通过!!!' );
 
SELECT COUNT(1) into @nsrztcount FROM fp_nsrzt WHERE SWJG_DM = (SELECT SZ_SWJG_DM FROM dj_nsrxx WHERE NSRSBH = @vnsrsbh) AND NSRZT_DM = @vnsrzt;
select  if (@nsrztcount<=0, '纳税人税务机关[SZ_SWJG_DM]不存在或状态与纳税人信息不匹配' , '验证06[纳税人所在税务机关SZ_SWJG_DM有效]验证通过!!!' );
 
select  '上述所有验证均通过,可保证订单可以下发成功' ;
 
select  count(1) into @vjccount2 from fp_pz pz, fp_nsrjc jc where jc.NSRSBH=pz.NSRSBH and pz.FPZL_DM=jc.FPZL_DM and pz.NSRSBH=@vnsrsbh;
select  if (@vjccount2<=0, '纳税人票种或结存为空' , '验证07[纳税人开票结存]验证通过!!!' );
 
select  count(1) into @dymbcount from dm_dymb mb where SWJG_DM=( select  SZ_SWJG_DM from dj_nsrxx where nsrsbh=@vnsrsbh);
select  if (@dymbcount<4, '所在税务机关打印模板数目不足4个' , '验证08[打印模板]验证通过,不保证模板路径有效!!!' );
select  concat( '____' ,PYFILEURL) as  '打印模板如下'  from dm_dymb mb where SWJG_DM=( select  SZ_SWJG_DM from dj_nsrxx where nsrsbh=@vnsrsbh);
 
select  qzid into @vqzid from fp_qzcx where nsrsbh=@vnsrsbh;
select  if (@vqzid is null, '纳税人签章信息不存在' , '验证09[签章信息]验证通过!!!' );
";
$mysql -N -L -s -e  "$sql"


本文出自 “简单” 博客,请务必保留此出处http://dba10g.blog.51cto.com/764602/1610703

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
4月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
413 79
|
2月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
7月前
|
前端开发 数据库
会议室管理系统源码(含数据库脚本)
会议室管理系统源码(含数据库脚本)
127 0
|
4月前
|
SQL 监控 安全
数据库安全审计系统
Next-DBM数据库审计系统助力企业解决数据安全难题,提供统一身份管理、全方位监控、智能风险识别、完整审计追溯及精细化权限管控,有效防范数据泄露与内部威胁,保障企业核心资产安全,满足合规要求,提升运维效率。
|
6月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
385 41
|
6月前
|
关系型数据库 MySQL Linux
实现MySQL数据库的定时自动备份脚本。
拿走,不谢,这个脚本配方(指引)保证你的数据库数据像蛋糕店一样地天天更新,还能确保老旧的蛋糕(数据)不会堆积满仓库。这下可好,数据安全有保障,数据库管理员也能轻松一点,偶尔闲下来的时候,煮杯咖啡,看个剧岂不美哉?别忘了偶尔检查一下你的自动备份是否正常工作,以防万一蛋糕机器出了点小差错。
331 20
|
6月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
509 17
|
6月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
158 18
|
6月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
458 11
下一篇
oss云网关配置