shell脚本连接数据库

1 登录到服务器
mysql mytest -u test -p test
或者
使用$HOME/.my.cnf文件来读取特定的启动命令和设置。其中一项设置就是用户启动的mysql会话的默认密码。
cat .my.cnf
[client]
password = test

chmod 400 .my.cnf
chmod命令将.my.cnf文件限制为只能由本人浏览。

2 向服务器发送命令

  • 发送单个命令
    将命令作为mysql命令行的一部分,用-e选项
    cat mtest1
#!/bin/bash
MYSQL=$(which mysql)

$MYSQL mytest -u test -e 'select * from employees'

SQL命令的结果返回给shell脚本,脚本会将它们显示在STDOUT中。

*发送多条SQL命令
利用文件重定向,在shell脚本中重定向多行内容,定义结束字符串(EOF)。
cat mtest2

#!/bin/bash
MYSQL=$(which mysql)
$MYSQL mytest -u test <<EOF
show tables;
select * from employees where salary > 40000;
EOF

cat mtest3

#!/bin/bash

MYSQL=$(which mysql)
if [ $# -ne 4 ]
then
	echo "Usage: mtest3 empid lastname firestname salary"
else
	statement="INSERT INTO employees VALUES ($1, '$2', '$3', $4)"
	$MYSQL mytest -u test << EOF
	$statement
	EOF
	if [ $? -eq 0 ]
	then 
		echo Data successfully added
	else
		echo Problem adding data
	fi
fi

3 格式化数据
cat mtest4

MYSQL=$(which mysql)
dbs=$($MYSQL mytest -u test -Bse 'show databases')
for db in $dbs
do
	echo $db
done

-B选项指定mysql程序工作在批处理模式运行。
-s选项用于禁止输出列标题和格式化符号。

-X选项可以输出xml格式
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值