注:本文转载自网络

Shell是每一个UNIX系统都有的工具,他功能强大,有很多系统启动程序是用Shell来写的.

在这里,我们利用Shell程序来操作MySQL数据库.

约定: MySQL管理用户为root, 密码为secret.

# vi mysql_opt.sh

#!/bin/sh

#

# 调用方法: mysql_opt $db_name "SQL语句"

sql_user=root

sql_pass=secret

sql_opt="-u$sql_user -p$sql_pass -s"

mysql_opt() {

db_name=$1

sql_lan=$2

mysql $sql_opt <<

EOF

USE

$db_name;

$sql_lan;

QUIT

EOF

}

#

# The file mysql_opt.sh ends here!

这样,就能通过调用mysql_opt函数来对MySQL数据库进行操作.

例: 要查找数据库test_db中test_table表的所有数据

# vi select.sh

#!/bin/sh

#

. ./mysql_opt.sh

echo "Query..."

data=`mysql_opt test_db "SELECT * FROM test_table WHERE 1"`

echo $data

echo "Done!"

#

# The file select.sh ends here!

[root@kevin bin]# ./mysql -u root -p111111 -e "use mysql;select

host,user,password from user"; +-----------+------+-------------------------------------------+

|

host | user |

password |

+-----------+------+-------------------------------------------+

| localhost | root

| *FD571203974BA9AFE270FE62151AE967ECA5E0AA

|

| kevin.com | root

| |

| 127.0.0.1 | root

| |

| localhost

| | |

| kevin.com

| | |

+-----------+------+-------------------------------------------+

****************************************

#!/bin/bash

/usr/local/mysql-5.1.32/bin/mysql -u root -p111111 -e "use

mysql;select host,user,password from user";

exit 0;

****************************************

如果需要导出mysql的记录到文本文件:

/usr/local/mysql-5.1.32/bin/mysql -u root -p111111 -e "use

mysql;select host,user,password from user into outfile

'/home/mysql/aa.txt';"

mysql -u $user -p$password -e "create database test;"

我知道的有如下两种方式可以在shell中访问操作mysql数据库

1. mysql -uusername -ppasswd -e "command;command"

[root@localhost ~]# mysql -uroot -p123456 -e "select user,host from

mysql.user"

+------+-----------------------+

| user |

host |

+------+-----------------------+

| root |

% |

| root |

127.0.0.1 |

| php |

localhost |

| root |

localhost |

| root |

localhost.localdomain |

+------+-----------------------+

请看下面这段文字:(引自mysql参考手册)

对mysql偶尔有用的另一个选项是-e或--execute选项,可用来将SQL语句传递给服务器。该语句必须

用引号引起来(单引号或双引号)。(然而,如果想要在查询中将值引起来,则对于查询应使用双引号

,查询中引用的值应使用单引号)。当使用该选项时,语句被执行,然后mysql立即退出命令外壳。

例如,你可以用下面的命令获得用户账户列表:

shell> mysql -u root -p -e "SELECT User, Host

FROM User" mysql

请注意mysql数据库名作为一个独立的参量传递。然而,相同的查询可能已经使用mysql -u root -p

-e "SELECT User,Host FROM mysql.User"从外壳中执行。

可以按这种方式传递多个SQL语句,用分号隔开:

shell> mysql -u root -p --execute="SELECT Name

FROM Country WHERE Name LIKE

'AU%';SELECT COUNT(*) FROM City" world

2. 如果sql语句比较多,可使用如下方式:

[root@localhost ~]# mysql -uroot -p123456

<< EOF

> use mysql;

> select user,host from user;

> EOF

user host

root %

root 127.0.0.1

php localhost

root localhost

root localhost.localdomain

从查询结果中可以看出,两者的输出结果格式不一样,前一种方式保留了mysql的输出格式。

另外,与此篇文章有关的shell 重定向知识,可以查阅ABS guide第16章节“I/O重定向”和第17章节“Here

Documents”

重定向示意:

mysql -uroot -p123qwe

>"a.txt"

自动登录mysql(root:root,passwd:123456),查询test库,test1表里的user=aa的记录.

#!/bin/sh

mysql -uroot -p123456

select * from testaa while

a=10000; ###1000 not usr single quote mark,because a is int type,only char

type need single quote mark.

EOF

mysql 导出shell_shell操作mysql,Shell操作MySQL并导出文本文件相关推荐

  1. 写一个清空Mysql数据库数据的脚本Shell

    写一个清空Mysql数据库数据的脚本Shell 服务器安装部署mysql8.0.2,需要有 mysqldump 命令 #!/usr/bin/bash# mysql -e cmd 可以用shell操作m ...

  2. mysql增量备份二进制日志,mysql增量备份二进制日志shell脚本

    mysql增量备份二进制日志shell脚本 mysql增量备份二进制日志shell exit?0 echo?"?"?>>$log_file echo?"End ...

  3. shell编程系列23--shell操作数据库实战之mysql命令参数详解

    shell编程系列23--shell操作数据库实战之mysql命令参数详解mysql命令参数详解-u 用户名-p 用户密码-h 服务器ip地址-D 连接的数据库-N 不输出列信息-B 使用tab键代替 ...

  4. mysql边备份边导入么_MySQL 怎么导入导出操作

    mysql 如何导入导出操作 1.MySQL 如何导入导出个别需要数据记录? – 先导出数据所在的表结构: mysql> show create table CHARBASE into outf ...

  5. linux下的shell操作mysql

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

  6. 使用Shell对MySQL指定的库进行SQL语句批量插入操作

    需求:   某环境MySQL数据库中有1000个以yz_xxx开头命名的库,要求:在所有以yz_xxx开头命名的库中插入指定的SQL语句. 解决一:   使用Navicat Mysql工具连接到MyS ...

  7. shell 登录mysql 然后quit_MySQL 数据库简单操作

    对于想要从事或爱好mysql相关工作的童鞋们,有必要掌握在命令行下对mysql实现一些简单的操作.本文从描述了如何登录到mysql数据库服务器,如何在mysql提示符下发布命令,创建数据库,以及执行一 ...

  8. linux shell操作mysql,Linux shell操作mysql数据库的方法

    摘要 腾兴网为您分享:Linux shell操作mysql数据库的方法,鱼乐贝贝,宜信,嘻嘻动漫,西餐菜谱等软件知识,以及包装效果图,德州人社,evasi0n.com,ios迅雷,民革e家,动态表情, ...

  9. mysql word_mysql导出word的表结构操作

    mysql导出word的表结构操作 1.首先准备好mysql的相关插件mysql-connector-odbc和DBExportDoc 百度网盘地址: 2安装驱动 打开DBExportDoc V1.0 ...

最新文章

  1. Go 语言编程 — validator 数据校验工具
  2. C/C++【顺序表】【初始化、赋值、打印、取值、查找、插入、删除、销毁、综合举例】
  3. IE9 CSS 因 Mime 类型不匹配而被忽略“问题
  4. java线性表合并_单链表的合并(Java实现)
  5. 2021高考成绩查询时间福州,福州2021高考填志愿入口
  6. Redis面试 - Redis的持久化机制
  7. Windows系统下查看已共享的文件夹的方法
  8. python5000行代码项目_5000行python代码+可视化60W数据,告诉你知乎用户不为人知的事...
  9. 学计算机的副部级,中国31所副部级大学排名
  10. C# lock 学习
  11. Gocloud高恪固件CVE-2020-8949漏洞利用打开SSH(poc支持5.2最新版测试通过)
  12. 制图利器—MapGIS10.5制图版体验
  13. java 读书笔记_《java编程思想》读后感
  14. 如何自定义炫酷浏览器主页
  15. 数字录音系统服务器,IP数字网络广播控制中心服务器
  16. 云标签,关键字图排版 html5 canvas版
  17. 微信小程序--操作示例2
  18. PLC的面向对象编程
  19. oracle 审计设置,oracle审计简单设置
  20. Effective Java读书笔记八:序列化(74-78)

热门文章

  1. 计算机网络——UDP与TCP
  2. 方便大家下载下面提前发放5月迅雷VIP!~
  3. 苹果a7处理器_苹果A系芯片到底强在哪里?它是凭什么超过高通骁龙和华为的?...
  4. JVM虚拟机面试典籍30+ | 大别山码将
  5. unity3D hw_4
  6. Autohotkey 组合键与序列键的定义
  7. 人工智能导论:深度学习初体验
  8. GTX1650和GTX1650Ti显卡
  9. 捞财宝等上海互金协会会员主动发布网贷行业自律声明
  10. CAD构造线如何使用