开发者社区> shy丶gril> 正文

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

简介:
+关注继续查看
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用Shell脚本安装MySQL(二)
⭐本文介绍⭐ 随着Linux系统在企业中的应用越来越多,服务器的自动化管理也变得越来越重要。在Linux服务器的自动化维护工作中,除了计划任务的设置以外,Shell脚本的应用也是非常重要的一部分。本文将主要介绍Shell脚本的基础,变量使用等知识。
51 0
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
Shell变量的作用、类型,及如何利用脚本配合任务计划远程备份mysql数据库
59 0
mysql,如何使用Unix shell登录Mysql?
mysql,如何使用Unix shell登录Mysql?
33 0
shell脚本使用mysqldump+mysql同步线上库和测试库数据
shell脚本使用mysqldump+mysql同步线上库和测试库数据
74 0
多次循环备份MySQL数据库数据shell脚本
多次循环备份MySQL数据库数据shell脚本
151 0
MySQL数据备份shell脚本
MySQL数据备份shell脚本
36 0
使用 Shell 脚本对 MySQL 数据库进行远程备份
使用 Shell 脚本对 MySQL 数据库进行远程备份
87 0
运维必看--Shell实现系统信息同步到Mysql
本篇内容记录了 Shell实现系统信息同步到Mysql的操作步骤。
40 0
自动化运维必看!Shell脚本实现Mysql自动备份!
对于一些重复性的工作,可以通过编写shell脚本来进行自动实现!
194 0
《懒人Shell脚本》之八——定期备份Mysql数据库表的实现
0.背景 实际开发环境中,前端程序需要在给定时间段内,将数据更新/插入到mysql指定的库表中。随着数据量的增多,基础库表基数的增长,每更新一次都会有5s左右的卡顿。
65 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
让 MySQL 原生分布式触手可及
立即下载
好的 MySQL 兼容可以做到什么程度
立即下载
云数据库RDS MySQL从入门到高阶
立即下载