当前位置:Gxlcms > 数据库问题 > shell 下执行mysql 命令

shell 下执行mysql 命令

时间:2021-07-01 10:21:17 帮助过:13人阅读

  优点:语句简单 缺点:支持的sql相对简单  

方案2

准备一个sql脚本,名字为update.sql,例如:
  1. CREATE TABLE `user` (  
  2.   `id` varchar(36) NOT NULL COMMENT ‘主键‘,  
  3.   `username` varchar(50) NOT NULL COMMENT ‘用户名‘,  
  4.   `password` varchar(50) NOT NULL COMMENT ‘用户密码‘,  
  5.   `createdate` date NOT NULL COMMENT ‘创建时间‘,  
  6.   `age` int(11) NOT NULL COMMENT ‘年龄‘,  
  7.   PRIMARY KEY  (`id`)  
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘用户信息表‘;  
  9. DROP TABLE IF EXISTS `visit_log`;  
  10. CREATE TABLE `visit_log` (  
  11.   `id` varchar(36) character set utf8 NOT NULL,  
  12.   `type` int(11) NOT NULL,  
  13.   `content` text character set utf8 NOT NULL,  
  14.   `createdate` date NOT NULL,  
  15.   PRIMARY KEY  (`id`)  
  16. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT=‘访问日志‘;  
   新建一个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  
  2. mysql -u* -h* -p* <<EOF  
  3.     Your SQL script.  
  4. EOF  
  例如:  
  1. #!/bin/bash  
  2. mysql -uroot  -ppassword <<EOF  
  3.    use chbdb;  
  4.     CREATE TABLE user (  
  5.   id varchar(36) NOT NULL COMMENT ‘主键‘,  
  6.   username varchar(50) NOT NULL COMMENT ‘用户名‘,  
  7.   password varchar(50) NOT NULL COMMENT ‘用户密码‘,  
  8.   createdate date NOT NULL COMMENT ‘创建时间‘,  
  9.   age int(11) NOT NULL COMMENT ‘年龄‘,  
  10.   PRIMARY KEY  (`id`)  
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘用户信息表‘;  
  优点: 1>支持复杂的sql脚本 2>无需其它额外文件 缺点: 1> 表名、字段不能使用单引号,需要修改原有sql语句 2> 一旦中间出错,之后脚本就不会执行,例如: 如果第一张表已经存在,则会报出如下异常: ERROR 1050 (42S01) at line 1 in file: ‘update.sql‘: Table ‘user‘ already exists 然后脚本退出,第二张表也就无法创建。

方案4

准备一个sql脚本,如update.sql,然后执行如下命令: [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 然后脚本退出,第二张表也就无法创建。    

shell 下执行mysql 命令

标签:创建   UI   nbsp   class   read   ...   string   令行   passwd   

人气教程排行