一、shell脚本实现mysql操作
通用的shell语句如下:
mysql -h H O S T N A M E − P {HOSTNAME} -P HOSTNAME−P{PORT} -u U S E R N A M E − p {USERNAME} -p USERNAME−p{PASSWORD} -e “${sql}” --default-character-set=UTF8
1
1、HOSTNAME是主机名,通常是数据库的ip
2、PORT是端口号
3、USERNAME是用户名
4、PASSWORD是密码
5、通过写sql里面的语句可以执行相应的数据库操作,常用的是数据库的增删改查操作。
6、default-character-set是编码方式
我们通常也不会把数据库的连接信息直接写在程序中,而是写在配置文件中,如命名database.conf文件:
数据库 服务IP 服务端口 数据库用户 数据库密码
student 127.0.0.1 6614 root 1234
然后利用initDBinfo函数来获取数据库信息:
function initDBinfo(){
HOSTNAME=cat ${dbconfPath} | grep ${1} | awk '{print $2}'
PORT=cat ${dbconfPath} | grep ${1} | awk '{print $3}'
USERNAME=cat ${dbconfPath} | grep ${1} | awk '{print $4}'
PASSWORD=cat ${dbconfPath} | grep ${1} | awk '{print $5}'
}
二、shell脚本实现数据库表的增删改查
2.1 数据库表的新增记录
#这里是实现文件入库记录插入到数据表中
#文件大小,以M为单位
fileSize=ls -l ${dataImportFile} | awk '{print int($5/1024)}'
#文件行数
fileLineCount=cat ${dataImportFile}|wc -l
#文件接收时间
fileRecvTim=stat ${dataImportFile}| grep Modify | awk '{print $2,$3}' | cut -d"." -f1
#数据库名
fileDBName=“fileDB”
#表名
fileTableName=“file_recv_info”
#字段列表
fileTableColumns=“file_nam,file_size,file_line_ctn,file_recv_tim,file_hdl_rst”
#插入数据库操作
insert_file_record_sql=“insert into f i l e D B N a m e . {fileDBName}. fileDBName.{fileTableName} ( f i l e T a b l e C o l u m n s ) v a l u e s ( ′ {fileTableColumns}) values (' fileTableColumns)values(