#!/bin/bash

#mysql.sh

mysql='mysql -uroot -ptogest'

sql='show databases;use togest_sy_department;show tables;'

$mysql -e "$sql"

mysql -uroot -ptogest --tee="mysql.log"

shell操作mysql

在shell开发中,很多时候我们需要操作mysql数据库(比如:查询数据、导出数据等),但是我们又无法进入mysql命令行的环境,就需要在 shell环境中模拟mysql的环境,使用mysql相关命令,本文总结几种shell操作mysql的方法,供大家参考。方案1

[python] view plaincopy

mysql -uuser -ppasswd -e"insert LogTable values(...)"

优点:语句简单

缺点:支持的sql相对简单

方案2

准备一个sql脚本,名字为update.sql,例如:

[python] view plaincopy

CREATE TABLE user (

id varchar(36) NOT NULL COMMENT '主键',

username varchar(50) NOT NULL COMMENT '用户名',

password varchar(50) NOT NULL COMMENT '用户密码',

createdate date NOT NULL COMMENT '创建时间',

age int(11) NOT NULL COMMENT '年龄',

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='用户信息表';

DROP TABLE IF EXISTS visit_log;

CREATE TABLE visit_log (

id varchar(36) character set utf8 NOT NULL,

type int(11) NOT NULL,

content text character set utf8 NOT NULL,

createdate date NOT NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='访问日志';

新建一个update_mysql.sh,内容如下:

[python] view plaincopy

use chbdb;

source update.sql

然后执行如下命令:

[python] view plaincopy

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脚本,格式如下:

[python] view plaincopy

#!/bin/bash

mysql -u-h -p* <

Your SQL script.

EOF

例如:

[python] view plaincopy

#!/bin/bash

mysql -uroot -ppassword <

use chbdb;

CREATE TABLE user (

id varchar(36) NOT NULL COMMENT '主键',

username varchar(50) NOT NULL COMMENT '用户名',

password varchar(50) NOT NULL COMMENT '用户密码',

createdate date NOT NULL COMMENT '创建时间',

age int(11) NOT NULL COMMENT '年龄',

PRIMARY KEY (id)

) 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

mysql -uroot -ppassword < update.sql

优点:支持复杂的sql脚本

缺点:

1> 一旦中间出错,之后脚本就不会执行,例如:

如果第一张表已经存在,则会报出如下异常:

ERROR 1050 (42S01) at line 1 in file: 'update.sql': Table 'user' already exists

然后脚本退出,第二张表也就无法创建。

大家知道在mysql命令行中使用source命令,即使中间出错,后续脚本也会继续执行,但是如上几种方式,均无法解决该问题,如果大家有好的建议,请回复,谢谢。

shell mysql_shell操作mysql相关推荐

  1. shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作

    来源:http://blog.163.com/xychenbaihu@yeah/blog/static/13222965520114116289991/ mysql  -hhostname -Ppor ...

  2. shell脚本操作MYSQL

    1.创建脚本test.sh !/bin/bash HOSTNAME="192.168.111.84" #数据库信息 PORT="3306" USERNAME=& ...

  3. shell mysql e_shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作...

    mysql  -hhostname -Pport -uusername -ppassword  -e  相关mysql的sql语句,不用在mysql的提示符下运行mysql,即可以在shell中操作m ...

  4. shell mysql e_shell脚本操作mysql数据库

    使用 mysql -e 参数可以执行各种 sql 的各种操作语句.不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. 格式:mysql  -hhostname -Pp ...

  5. linux下的shell操作mysql

    (1)MySQL的启动 重启了一次服务器后,使用> mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect to local ...

  6. mysql shell窗口操作的一个细节问题

    不进入mysql终端直接在shell终端操作mysql时: -e 后面的SQL语句要加双引号 错误:mysql -u用户名 -p密码 -e create database if not exists ...

  7. Shell脚本调用mysql语句

    方法一: mysql -hhostname -Pport -uusername -ppassword -e 相关mysql的sql语句. 不用在mysql的提示符下运行mysql,即可以在shell中 ...

  8. mysql数据库大小 shell_shell脚本操作mysql数据库

    标签: 使用 mysql -e 参数可以执行各种 sql 的各种操作语句.不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法. 格式:mysql  -hhostname ...

  9. shell脚本mysql_Shell脚本中执行sql语句操作MySQL数据库的几个方法

    实验如下: [root@idb1 ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m mysql> show va ...

最新文章

  1. Symfony2Book06:路由
  2. Python 内置方法和属性应用:反射和单例
  3. PHP中文件操作基础:文件路径基础
  4. 武汉 net 2011-04-29
  5. hoj 1072 活动安排问题
  6. SQL点滴19—T-SQL中的透视和逆透视
  7. MTK 驱动开发(40 )---TP乱跳频原因
  8. 你们期待的小屏旗舰来了: 骁龙855 没有刘海!
  9. UI设计干货素材|动效导航,漂亮的悬停动效
  10. appium部分操作
  11. Android 日志工具包
  12. svn在checkout数据仓库aaa时,出现如下错误:
  13. 批处理 批量s扫1433_批处理批量字符替换
  14. ASP.NET乱码解决方案
  15. Prometheus监控报警系统
  16. 视频播放(iOS开发)
  17. XP IIS之——问题总结
  18. 11 Animation动画
  19. 彻底理解Runnable与Thread,真的有区别吗?
  20. 「九章云极DataCanvas」完成C+轮融资, 用云中云战略引领数据智能基础软件升级

热门文章

  1. 质因数分解(洛谷P1075题题解,Java语言描述)
  2. Scrapy 爬虫框架初体验三 —— 工程优化及其完善
  3. 简 易 版 的 进 程 池 模 型 学 习
  4. 12.1 LNMP架构介绍 12.2 MySQL安装 12.3/12.4 PHP安装 12.5 Nginx介绍
  5. Berenson机器人艺术鉴赏家亮相切尔西画廊
  6. 一个持续6年的针对多国政府机构的网络间谍活动 — “美人鱼行动”
  7. Lotus中关于字符串处理的函数汇总
  8. Linux学习笔记Sed最全整理
  9. 漢城博殺的日子 (一)
  10. 天亮了起来的飞鸽传书官方下载