shell脚本实现导入mysql数据_shell执行mysql语句

发布时间:2019-09-07编辑:脚本学堂
有关用shell脚本导入mysql数据的方法,以及shell脚本执行mysql语句的例子,需要的朋友参考下。

如何执行shell/ target=_blank class=infotextkey>shell脚本里导入sql文件到mysql/ target=_blank class=infotextkey>mysql数据库中,或连接mysql执行指定sql语句,请参考下面介绍的方法。

例1,导入sql文件到mysql数据库
 

复制代码 代码示例:

#!/usr/bin/bash

#变量定义 
sqlname="test.sql" 
dir="/sdb2/backup/mysql_db_backup/backup/databases" 
host="127.0.0.1" 
user="root" 
passwd="123456" 
dbname="test" 
 
#导入sql文件到指定数据库 
mysql -h$host -u$user -p$passwd $dbname < $dir/$sqlname 

关键点
"<"运算符的使用

2、执行指定的sql语句
mysql的-e参数

参数解释
 

--execute=statement, -e statement 
xecute the statement and quit. The default output format is like that produced with --batch 

--silent, -s 
Silent mode. Produce less output. This option can be given multiple times to produce less and less output. 

代码:
 

复制代码 代码示例:
select_sql="select count(distinct id) from tb_test" 
num=$(mysql -s -h$host -u$user -p$passwd $dbname -e "$register_sql") 

注意:
-s参数的使用是减少查询字段的输出(ps:我这里只需要查询的结果值,并不需要查询的字段名,不加-s参数会输出查询的字段名)

管道运算符
 

echo "select count(distinct id) from tb_test" | mysql -h$host -u$user -p$passwd $dbname 

建议使用-e参数。

3、mysqldump导出mysql数据

1)、导出指定条件的数据库
命令格式
mysqldump -u用户名 -p密码 -h主机  数据库名 表名  --where "sql语句"> 路径 

shell脚本:
 

复制代码 代码示例:
#!/bin/bash 
#变量定义 
host="127.0.0.1" 
user="root" 
passwd="123456" 
dbname="test" 
tablename="tb_test" 
mysqldump -u$user -p$passwd -h$host $dbname  $tablename --where "id > 1 and id < 1000"  > 1.sql 

2)、导出一个数据结构(无数据)
参数
--no-data, -d 
Do not write any table row information (that is, do not dump table contents). This is useful if you want to dump only the CREATE TABLE statement for the table (for example, to create an empty copy of the table by loading the dump file). 

命令格式
mysqldump -u用户名 -p密码 -h主机 数据库名 -d > 路径 

shell脚本:
 

复制代码 代码示例:
#!/bin/bash 

#变量定义 
host="127.0.0.1" 
user="root" 
passwd="123456" 
dbname="test" 
 
mysqldump -u$user -p$passwd -h$host $dbname -d > 2.sql