在shell脚本中操作mysql

查询数据

#!/bin/bash

M_sql="mysql -ureadonly -h12.1.3.20 -pR5dt --default-character-set=utf8 -A -N"
#这里面有两个参数,-A、-N,
#-A的含义是不去预读全部数据表信息,这样可以解决在数据表很多的时候卡死的问题
#-N,很简单,Don't write column names in results,获取的数据信息省去列名称

sql="SELECT COUNT(1) FROM pj_p2p_core.t_invest_repayment WHERE reinvest_need_amt >0;" #注意sql语句中不能有单引号,否则会报错
result
="$($M_sql -e "$sql")" echo $result echo -e "$result" > outfile #这里要额外注意,echo -e "$result" 的时候一定要加上双引号,不让导出的数据会挤在一行

 

此例子在工作中运用

#!/bin/bash

MYSQL="mysql -umicro_readonly  -h172.16.3.120 -pR5dt0HwLvc3g --default-character-set=utf8 -A -N"

sql="SELECT
  count(id)
FROM
  t_product
WHERE if_old = 0 AND product_status != 240
AND
id IN
  (SELECT
    product_id
  FROM
    t_invest
  WHERE plan_invest_id IN
    (SELECT
      id
    FROM
      t_plan_invest
    WHERE reinvest_amt > 0)
    AND DATE(invest_time) = DATE(NOW()))"


result="$($MYSQL pj_p2p_core -e "$sql")" #指定连的数据库

if [ $result -gt 0 ];then
     msg="复投待满标金额"
     /usr/bin/curl  http://172.16.3.50/zabbix_web/weixin/weixin.php?msg="$msg"
fi
View Code

 

posted @ 2018-03-16 20:24  Gringer  阅读(161)  评论(0)    收藏  举报