mysql 命令参数
参数 | 含义 |
---|---|
-u | 用户 |
-p | 密码 |
-h | 要连接的主机 |
-D | 指定数据库 |
-e | 要执行的 sql 语句 |
-B | 输出以 tab 分隔 |
-N | 不显示列头 |
-E | 垂直显示 |
-H | 以 html 形式输出 |
-X | xml 格式输出 |
shell 脚本接受
#!/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