shell脚本操作数据库

mysql -uroot -phantele --host=192.168.1.60 -P 5029  //连接数据库

 

CREATE TABLE IF NOT EXISTS $destable.tr_bsc_group_detail (

bsc_group_detail_id bigint(20) NOT NULL,

bsc_group_id bigint(20) NOT NULL,

bsc varchar(8) NOT NULL)

ENGINE=MyISAM DEFAULT CHARSET=utf8;

 

mysql -uroot -phantele --host=192.168.1.60 -P 5029 -e "CREATE DATABASE IF NOT EXISTS $destable;"  // 选项-e后面可以跟sql语句进行操作

 

mysql -uhantele -phantele --host=$srchost -P 3306 -e"set names 'utf8';select * from $srctable.tr_bsc_group;" | grep -v bsc_group_id > /home/ib_iee/data/$destable/tr_bsc_group.txt  //把表里面的数据保存到文本里面,当然也可以用mysqldump,但是mysqldump有个问题,就是它是拷整个数据库,包括建表、

添加字段等的sql语句,也会被保存在文本文本里面;因为select * from $srctable.tr_bsc_group所筛选出来的第一行会是字段的名字,所以后面的grep会去掉第一行,

剩下的就全是数据了。

还有一种保存成文本的方法:select * from table into OUTFILE 'file.txt';

 

mysqlimport -uroot -phantele -h$desthost --default-character-set=utf8 -d -f -l --lines-terminated-by="\n" --fields-terminated-by="\t" -P 5029 $destable tr_bsc_group.txt

//用mysqlimport把文本文件里面的内容插到创建的数据库里面。

在用infobright数据库的时候还可以这样做:./dataprocessor -i /home/ib_iee/data/file.txt -H $deshost -L root -p hantele -D $destable -P 5029 -T gn_common_$year$month_tmp$day_tmp$hour_tmp -X -f txt_variable fields-terminated-by=\t   lines-terminated-by=\r\n --fields-enclosed-by="\""

 

注:因为考虑到把文本文件里面的内容插到创建的数据库里面的时候可能会有中文,所以加上--default-character-set=utf8;还有在建表的时候ENGINE=MyISAM,是采用mysql

      的引擎,因为我在做的时候刚开始没有加这个选项,我是用的数据库是infobright数据库,默认是它的引擎,所以中文显示的是乱码。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值