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
然后脚本退出,第二张表也就无法创建。
 
 
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM