• 用脚本完成mysql工作


    1. 用mysql -e在脚本中执行mysql的sql语句

    #!/bin/bash
    #simple mysql shell usage
    
    logtime=`date "+%Y-%m-%d"`
    LOG=call_sql_${logtime}.log
    echo "Start execute sql statement at `date`" >>${LOG}
    
    #execute sql stat
    mysql -u root -p19930309 -e "
    tee /tmp/temp.log
    use test
    drop table if exists stu;
    create table  stu(name varchar(20),age int);
    insert into stu values('wangkun',12),('amei',12),('Jack',14);
    select * from stu;
    notee
    quit
    "
    echo -e "
    " >> ${LOG}
    echo "below is output result :" >> ${LOG}
    cat /tmp/temp.log >> ${LOG}
    echo "scrtip execute successful." >> ${LOG}
    exit

      执行结果

      

    Start execute sql statement at Mon Apr 18 23:23:01 CST 2016
    
    
    below is output result :
    +---------+------+
    | name    | age  |
    +---------+------+
    | wangkun |   12 |
    | amei    |   12 |
    | Jack    |   14 |
    +---------+------+
    scrtip execute successful.

    2.通过管道符号

     select2.sql

    tee /home/hadoop_admin/mysql.log
    use test
    drop table if exists stu;
    create table  stu(name varchar(20),age int);
    insert into stu values('wangkun',12),('amei',12),('Jack',14);
    select * from stu;
    notee
    quit

      

    [hadoop_admin@master mysql_shell]$ mysql -u root -p19930309 < ./select2.sql
    Warning: Using a password on the command line interface can be insecure.
    Logging to file '/home/hadoop_admin/mysql.log'
    name    age
    wangkun 12
    amei    12
    Jack    14
    Outfile disabled.

    3.命令行单独调用sql文件

     select2.sql

    tee /home/hadoop_admin/mysql.log
    use test
    drop table if exists stu;
    create table  stu(name varchar(20),age int);
    insert into stu values('wangkun',12),('amei',12),('Jack',14);
    select * from stu;
    notee
    quit
    [hadoop_admin@master mysql_shell]$ mysql -u root -p19930309 -e "source select2.sql"
    Warning: Using a password on the command line interface can be insecure.
    Logging to file '/home/hadoop_admin/mysql.log'
    +---------+------+
    | name    | age  |
    +---------+------+
    | wangkun |   12 |
    | amei    |   12 |
    | Jack    |   14 |
    +---------+------+
    Outfile disabled.

    4. shell脚本中MySQL提示符下调用SQL , oracle 也可以这样干

      select3.sh

      

    #!/bin/bash
    mysql -u root -p19930309 <<EOF
    tee /home/hadoop_admin/mysql.log
    use test
    drop table if exists stu;
    create table  stu(name varchar(20),age int);
    insert into stu values('wangkun',12),('amei',12),('Jack',14);
    select * from stu;
    notee
    quit
    EOF
    exit

      执行情况

      

    [hadoop_admin@master mysql_shell]$ ./select3.sh
    Warning: Using a password on the command line interface can be insecure.
    Logging to file '/home/hadoop_admin/mysql.log'
    name    age
    wangkun 12
    amei    12
    Jack    14
    Outfile disabled.
  • 相关阅读:
    Linux Shell 基本语法
    VIM选择文本块/复制/粘贴
    linux vi命令详解2
    SSH命令详解2
    JAVA调用Shell脚本
    scp命令的用法详解
    Java实践 — SSH远程执行Shell脚本
    Remote SSH: Using JSCH with Expect4j
    c++内置函数---7
    c++将引用作为函数的参数---6
  • 原文地址:https://www.cnblogs.com/linux-wangkun/p/5426516.html
Copyright © 2020-2023  润新知