• shell 操作mysql


    卡死20分钟以上的任务

    #!/bin/bash
    
    HOST="127.0.0.1"
    PORT="3306"
    USERNAME="root"
    PASSWORD="123456"
    DBNAME="fofapro"
    
    #定时删除user_id = 100063403 卡死20分钟以上的任务
    update_sql="
    update enterprise_ip_tasks set state = 'failure',updated_at = DATE_FORMAT(NOW(),'%Y-%m-%d %T') where id in (
      SELECT * FROM (
        (SELECT id FROM enterprise_ip_tasks where TIMESTAMPDIFF(MINUTE,created_at,DATE_FORMAT(NOW(),'%Y-%m-%d %T')) >=20  and user_id in (100063403) and result_file = '' and state = 'init') 
      as t
     )
    );
    "
    mysql -h${HOST}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${update_sql}"
    
    

    导出指定条件的ip列表

    #!/bin/bash
    echo "start"
    
    HOST="127.0.0.1"
    PORT="3306"
    USERNAME="root"
    PASSWORD="123456"
    DBNAME="order"
    userid="100039371"
    
    mysql_export_ip="./dataip.txt"
    
    tmp_file_data="./query333.json"
    file_data="./esResultDate.json"
    
    #导出数据user_id = 100009001 
    selectsql="
    SELECT ip from enterprise_task_assets where user_id=$userid and date(created_at) = date_sub(curdate(),interval 1 day); 
    "
    #mysql -h${HOST}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} --default-character-set=utf8 -e "${select}"
    MYSQL="mysql -h${HOST}  -P${PORT}  -u${USERNAME} -p${PASSWORD} ${DBNAME} --default-character-set=utf8 -A -N"
    #这里面有两个参数,-A、-N,-A的含义是不去预读全部数据表信息,这样可以解决在数据表很多的时候卡死的问题
    #-N,很简单,Don't write column names in results,获取的数据信息省去列名称
    result="$($MYSQL -e "$selectsql")"
    echo "$result"
    dump_data=$mysql_export_ip
    >$dump_data
    echo -e "$result" > $dump_data
    #这里要额外注意,echo -e "$result" > $dump_data的时候一定要加上双引号,不让导出的数据会挤在一行
    
    
    [Haima的博客] http://www.cnblogs.com/haima/
  • 相关阅读:
    PKUSC2021游记
    P3349 [ZJOI2016]小星星
    序二
    1.3 解析库的安装
    1.2 请求库的安装
    1.5 存储库的安装
    1.6 Web 库的安装
    1.7 App 爬取相关库的安装
    2.1 HTTP 基本原理
    1.9 部署相关库的安装
  • 原文地址:https://www.cnblogs.com/haima/p/15263293.html
Copyright © 2020-2023  润新知