shell批量增删改查百库百表(mysql)

一、基础环境
1、版本
cat /etc/debian_version 
7.8

2、内核
uname -r
3.2.0-4-amd64

3、ip(eth0)
10.1.10.117
10.1.10.185

4、2台机器上都设置权限
grant all privileges on `xxx%`.* to ‘jimmy‘@‘10.1.10.%‘ identified by ‘redhat‘;
flush privileges;

5、要注意数据库必须监听在相应本机IP地址上

二、shell脚本函数说明
redirectlog           #记录日志
createdb              #创建库
createtb              #创建表 

三、具体代码
cat createdbtb.sh 
#!/bin/bash
#--------------------------------------------------
#Author:jimmygong
#Email:[email protected]
#FileName:createdbtb.sh
#Function:
#Version:1.0
#Created:2015-10-29
#--------------------------------------------------
currdate=$(date +%Y%m%d)
dbuser="jimmy"
dbpass="redhat"
logdir="/root/log"
tmptb="table.sql"
tmpdb="db.sql"
function redirectlog ()
{
    logfile=$logdir/${currdate}log
    mkdir -p $logdir
    exec 1>$logfile
    exec 2>$logfile
}
function createdbsql ()
{
    cat <<EOF > $tmpdb
    create database $1
EOF
}
function createdb ()
{
    dbfront=0
    dbend=100
    while [[ $dbfront -lt $dbend ]]
    do
        dbx=`printf "%02d" $dbfront`
        createdbsql xxx$dbx
        cat $tmpdb|mysql -u"$dbuser" -p"$dbpass" -h"$1"
        let "dbfront+=1"
    done
}
function createtbsql ()
{
    cat <<EOF > $tmptb
    CREATE TABLE IF NOT EXISTS t_xxx_$1(
    userid INT UNSIGNED NOT NULL DEFAULT ‘0‘,
    toolid INT UNSIGNED NOT NULL DEFAULT ‘0‘,
    number INT UNSIGNED NOT NULL DEFAULT ‘0‘,
    get_time INT UNSIGNED NOT NULL DEFAULT ‘0‘,
    PRIMARY KEY (userid, toolid)
    ) ENGINE=innodb, CHARSET=utf8;
EOF
}
function createtb () 
{
    dbfront=0
    dbend=100
    tablefront=0
    tableend=100
    while [[ $dbfront -lt $dbend ]]
    do
        dbx=`printf "%02d" $dbfront`
        echo $dbx
        while [[ $tablefront -lt $tableend ]]
        do
            tbx=`printf "%02d" $tablefront`
            createtbsql $tbx
            cat $tmptb|mysql -u"$dbuser" -p"$dbpass" -h"$1" "xxx$dbx"
            let "tablefront+=1"
        done
        let "dbfront+=1"
        let "tablefront=0"
    done
}
redirectlog
createdb 10.1.10.185
createtb 10.1.10.185
createdb 10.1.10.117
createtb 10.1.10.117
end=`date "+%s"` 
exit 0
时间: 2024-10-29 19:12:37

shell批量增删改查百库百表(mysql)的相关文章

Hibernate 批量增删改查操作

上文介绍Hibernate基本的增删改查,本例将介绍更实用的批量增删改查的操作的实现.本文中增删改查的操作,仅供参考.如果读者需要应用到实际的应用场景需要的话,需要在此基础上扩展与丰富. [转载使用,请注明出处:http://blog.csdn.net/mahoking] 在学习本例时,需要扩展一下Hibernate中Session的知识.Hibernate中的Session是一级缓存,可以理解为进程级的缓存.在进程运行期间一直存在.Session可以理解为一个可以操作数据库的对象 具体如何操作

MyBatis批量增删改查操作

前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 批量增加操作步骤 1. 在接口UserMapper中添加批量增加方法. /** * 批量增加操作 * @param users */ public void batchInsertUsers(List<User> users); 2.在User.xml中添加批量增加操作的配置. <!-- 批量增

mybaties的批量增删改查及普通增删改查

数据库: create table school(     id int(11) not null auto_increment comment '主键',     name varchar(20) comment '学校名称',     address varchar(100) comment '学校地址',     create_time datatime comment '数据上传时间',     primary key (id) ) 实体类: package com.test.entit

010杰信-创建购销合同Excel报表系列-3-建立合同货物(增删改查):子表

前面分析过购销合同的Excel报表需要四张表,这篇讲的是合同货物表. 这个合同货物表是合同表 项目结构: 前面带红色框框的就是这个需要的domain->Dao层->Service层->到控制层. 具体代码如下: domain就是数据库中对应的CONTRACT_PRODUCT_C这张表. 如下: 所以domain包中的po类就是: package cn.itcast.jk.domain; //合同货物 public class ContractProduct { private Strin

MySQL增删改查之【多表联合查询】

很多时候在实际的业务中我们不只是查询一张表. 在电子商务系统中,查询哪些用户没有购买过产品. 银行中可能查询违规记录,同时查询出用户的 查询中奖信息和中奖人员的基本信息. 以上只是列的情况我们就需要把两张表在一起进行查询. 而上述业务中需要多表联合在一起查询才能有结果,而多表联合查询的本质是:表连接. 表连接 当需要查询多个表中的字段时,就可以使用表连接来实现.表联接分为内连接和外连接. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结. 外连接:会选出其他不匹配的记录

MySQL基本操作--库\表增删改查

库的增删改查 增: create database db1; 删: drop database db1; 改: alter database db1 charset utf8; 修改库的字符集编码 查: show database; 查看所有的数据库 show create database db1\G; 查看数据库创建信息 表的增删改查 切换库: use db1     #要操作表文件,要先切换到对应的库下才能操作 增: create table tb1(id int); 删: drop ta

数据库初识 用户创建授权 库与表内容的增删改查

初识数据库 为什要用数据库 第一,将文件和程序存在一台机器上是很不合理的. 第二,操作文件是一件很麻烦的事 数据库的优势 1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务. 2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象 解决了多个服务同时使用数据的一致性间题 3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket 解决了并发问题 4.效

mysql常用语句、命令(增删改查功能)

修改数据库的字符集    mysql>use mydb    mysql>alter database mydb character set utf8;创建数据库指定数据库的字符集    mysql>create database mydb character set utf8; 查看database的字符集! show variables like 'collation_%';show variables like 'character_set_%'; 一.系统操作 1. 打开服务:n

beego增删改查代码实现

记录下使用beego的增删改查实现,数据库使用mysql,完整代码如下: package main import ( _ "crud_beego/routers" //自动注册路由 "fmt" "github.com/astaxie/beego" "github.com/astaxie/beego/orm" _ "github.com/go-sql-driver/mysql" ) const ( DRIVE