Shell脚本与Mysql交互

本文介绍了如何使用mysql命令参数进行数据库操作,包括备份与恢复,以及通过shell脚本实现数据导入和mysqldump备份,并通过FTP将备份文件上传。
摘要由CSDN通过智能技术生成

在这里插入图片描述

本文来自我的博客地址

mysql 命令参数

参数含义
-u用户
-p密码
-h要连接的主机
-D指定数据库
-e要执行的 sql 语句
-B输出以 tab 分隔
-N不显示列头
-E垂直显示
-H以 html 形式输出
-Xxml 格式输出

shell 脚本接受 与, 操作 mysql

#!/bin/bash
#

user="dbuser"
password="123456"
host="127.0.0.1"
db_name="$1"  # 参数中用空格时要用双引号

SQL="$2"

mysql -u"$user" -p"$password" -h"$host" -D"db_name" -B -e "$SQL"
$ sh operator.sh school "insert into score("231","1234",100)"

使用 shell 导入数据

#/bin/bash
#

user="dbuser"
password="123456"
host="127.0.0.1"

IFS="|"  # shell 默认以空格与 tab 切分, 通过 IFS 改变默认分隔符

cat data.txt | while read id name birth sex
do
	if [ $id -gt 2023 ];then
		mysql -u"$user" -p"$password" -h"$host" -e "Insert into school.student values('$id','$name','$birth','$sex')"
	fi
done

利用 mysqldump 进行数据库备份

mysqldump 参数含义
-u
-p
-h
-d –no-data只导出表结构
-t –no-create-info只导出数据, 不导出建表语句
-A –all-databases–all-databases
-B –databases导出一个或多个数据库

备份 school 下的 score 表, 通过 ftp 上传到目标服务器

#!/bin/bash
#

db_user="dbuser"
db_password="123456"
db_host="127.0.0.1"

ftp_user="fpt_user"
ftp_password="123"
ftp_host="127.0.0.1"

src_dir="/data/bak"
dst_dir="/data/backup"
time="`date +%Y%m%d%H%M%S`"
filename="school_score_${time}.bak"

function auto_ftp
{
        ftp -inv << EOF
        open $ftp_host
        user $ftp_user $ftp_password

        cd $dst_dir
        put $1
        bye
EOF
}

# 备份 school 数据库下的 score 表
# && 只有前一天命令正确执行在执行后面命令
mysqldump -u"$db_user" -p"$db_password" -h"db_host" school score > $src_dir/$filename && auto_ftp $src_dir/$filename
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M·K·T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值