shell脚本关联mysql数据库实例讲析

  

<强> 1。连接mysql数据库

壳中连接数据库的方法很简单,只需要指定用户名:密码,连接的数据库名称,然后通过重定向,输入mysql的语句,如下所示:

代码如下:

mysql - p - u用户名密码数据库名& lt; & lt; EOF 2在/dev/null
,,,显示数据库;
EOF

翱桥平疟竟亓猰ysql数据库实例讲析"

但这并不是一个好办法,任何使用该脚本的用户都能看到该数据库用户的账号和密码,要解决这个问题,可以用mysql数据库的一个特殊配置文件.mysql数据库使用$ HOME/.my.cnf文件来读取特殊的启动命令和设置。其中一项设置是由该用户账户发起的mysql会话的默认密码。要在这个文件中设置默认密码,可以加入下面的内容:

代码如下:


[客户]
密码=123456
然后,别忘了修改权限:
chmod 400,.my.cnf
这样就可以通过脚本访问mysql数据库了,如下所示:
# !/bin/bash
MYSQL=' MYSQL的
美元MYSQL测试- u root & lt; & lt;EOF
显示数据库;
显示表;
select *从员工工资比;4000;
EOF


<强> 2。创建数据库

通过上面的方法连接数据库,再通过重定向输入mysql语句,壳中读写mysql基本就介绍完了。只要把sql语句写对了,通过重定向执行即可,下面来看一个实例:

代码如下:


# !/bin/bash
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# @file create_db_mysql。sh
# @brief创建数据库和表在mysql
# @author对赖

# 0.1 # @version @date 2013-01-20
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
用户=皉oot"
数据库=皊tudents"
表=皊tudents"
# # # # # # # # # # # # # # # # # # # # # #

#箱数据库mysql - u $ USER & lt; & lt;EOF 2在/dev/null
创建数据库数据库
美元EOF
[$ ?情商0],,回声“创建DB"| |回声数据库已经存在
# # # # # # # # # # # # # # # # # # # # # #
# create table
mysql - u用户数据库& lt;美元& lt;EOF 2在/dev/null
创建表美元表(
id int,
名称varchar (100),
标记int,
部门varchar (4)
);
EOF
[$ ?情商0],,回声“创建表students"| |回声“表学生已经exist",
# # # # # # # # # # # # # # # # # # # # # # #删除数据

mysql - u用户数据库& lt;美元& lt;EOF 2在/dev/null
删除从表;
EOF


这个脚本比较简单,就是几条SQL语句,没什么好解释的,下面来看一下,如何读入csv文件,然后插入到mysql数据库中。

<强> 3。插入csv文件

上面创建了一个学生表,表中有学生的学号,姓,名成绩,系别,假设有一个csv文件,内容如下:

代码如下:

猫数据
1美元,Navin M 98 CS
2, Kavya N, 70年,CS
3,纳瓦兹·O, 80年,CS
4,哈里年代,80年,EC
5,亚历克斯·M 50, EC
6, Neenu J, 70年,EC
7,鲍勃,30日,欧共体
8,阿奴M, 90年,AE
9日Sruthi, 89年,AE
10,安德鲁,89年,AE



代码如下:


插入学生价值观(Navin M" 1,“98年,“CS");



代码如下:

1,“Navin M" 98年,“CS"awk代码如下:
查询=癳cho $ |行awk - f, & # 39; {printf (“% s, \“% s \“, % s, \“% s \““, $ 1, $ 2, 3美元,4美元)}& # 39;“
=声明的回应“插入表值(查询)美元美元;““
echo $声明



代码如下:


oldIFS=$ IFS
IFS=?br/>值=(线)


值[1]=癨”,“echo ${值[1]}| tr & # 39;& # 39;& # 39;# & # 39;”\“,“
值[3]=癨““echo ${值[3]}”\““

查询=' echo ${值[@]}| tr & # 39;# & # 39;& # 39;& # 39;“
IFS=$ oldIFS

声明='回声“插入表值(查询)美元美元;“,“
回声“statement"美元;



完整的插入数据的程序如下:

代码如下:


# !/bin/bash
#
# @file write_to_db_mysql。sh
# @brief写数据到数据库mysql
# @author对赖

# 0.1 # @version @date 2013-01-20
#


用户=皉oot"
数据库=皊tudents"
表=皊tudents"
如果[$ # - ne 1];然后
,,,echo $ 0数据文件
,,,回声
,,,出口2
fi
data=https://www.yisu.com/zixun/
while  1美元;读取行,

#,,查询=' echo $ |行awk - f, & # 39; {printf (“% s, \“% s \“, % s, \“% s \““, $ 1, $ 2, 3美元,4美元)}& # 39;“
,,,oldIFS=$ IFS
,,,IFS=?br/>,,,值=(线)
,,,值[1]=癨”,“echo ${值[1]}| tr & # 39;& # 39;& # 39;# & # 39;”\“,“

shell脚本关联mysql数据库实例讲析