• shell 下执行mysql 命令


    From: http://blog.csdn.net/beginning1126/article/details/8590014

    方案1

    1. mysql -uuser -ppasswd -e  
     
    优点:语句简单
    缺点:支持的sql相对简单
     

    方案2

    准备一个sql脚本,名字为update.sql,例如:
    1. CREATE TABLE `user` (  
    2. ) NOT NULL COMMENT ,  
    3. ) NOT NULL COMMENT ,  
    4. ) NOT NULL COMMENT ,  
    5. ,  
    6. ) NOT NULL COMMENT ,  
    7. ;  
    8. ) character set utf8 NOT NULL,  
    9. ) NOT NULL,  
    10. ;  

     

     新建一个update_mysql.sh,内容如下:
    [python] view plaincopy
    1. use chbdb;  
    2. source update.sql  

     

     
    然后执行如下命令:
    [python] view plaincopy
    1. cat update_mysql.sh | mysql --user=root -ppassword  

     

    优点:支持复杂的sql脚本
    缺点:
    1> 需要两个文件:update.sql和update_mysql.sh
    2> 一旦中间出错,之后脚本就不会执行,例如:
    如果第一张表已经存在,则会报出如下异常:
    ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists
    然后脚本退出,第二张表也就无法创建。

    方案3

        新建一个shell脚本,格式如下:
     
    1. #!/bin/bash EOF  

     

    例如:
     
    1. #!/bin/bash ) NOT NULL COMMENT ,  
    2. ) NOT NULL COMMENT ,  
    3. ) NOT NULL COMMENT ,  
    4. ,  
    5. ) NOT NULL COMMENT ,  
    6. ;  

     

    优点:
    1>支持复杂的sql脚本
    2>无需其它额外文件
    缺点:
    1> 表名、字段不能使用单引号,需要修改原有sql语句
    2> 一旦中间出错,之后脚本就不会执行,例如:
    如果第一张表已经存在,则会报出如下异常:
    ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists
    然后脚本退出,第二张表也就无法创建。

    方案4

    [python] view plaincopy
    1. mysql -uroot -ppassword < update.sql  
     
    优点:支持复杂的sql脚本
    缺点:
    1> 一旦中间出错,之后脚本就不会执行,例如:
    如果第一张表已经存在,则会报出如下异常:
    ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists
    然后脚本退出,第二张表也就无法创建。
     
     
     
     
  • 相关阅读:
    HTML5基础
    错题本
    字符串
    带参的方法
    人际猜拳参考答案:
    用户登录页面——jdbc
    多媒体播放系统案例
    七言
    七言
    表格设计案例
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/4519518.html
Copyright © 2020-2023  润新知