加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

通过shell脚本 动态批量导出mysql 数据

发布时间:2023-01-10 13:31:30 所属栏目:MySql教程 来源:转载
导读: 一般mysql导出数据会使用select into outfile 导出,这种方式只有在命令行模式下才能把文件生成 到本地MySQL 导出数据,如果通过存储过程执行,文件会生成到mysql数据库所在的主机上。
这个

一般mysql导出数据会使用select into outfile 导出,这种方式只有在命令行模式下才能把文件生成 到本地MySQL 导出数据,如果通过存储过程执行,文件会生成到mysql数据库所在的主机上。

这个时候如果你需要动态配置查询条件来导出文件,就会变得很麻烦。这种情况下,可以使用shell脚本来解决这个问题 ,具体shell脚本如下:

####MYSQL数据库账号
MYSQL_USER=root
MYSQL_PWD=****
MYSQL_NAME=mtg
MYSQL_HOST=XXX.XXX.XXX.XXX
MYSQL_PORT=3306
#导出mysql文件
function exp_mysql_data()
{
#statement="select * from member;"
statement=$1
mysql -u${MYSQL_USER} -p${MYSQL_PWD} -P${MYSQL_PORT} -h${MYSQL_HOST} -D${MYSQL_NAME} >$2 << EOF
set character_set_client = utf8;     
set character_set_results = utf8;    
set character_set_connection = utf8; 
$statement
EOF
sed -i "s/\t/,/g" $2 
sed -i "s/NULL//g" $2 
}

通过调用函数时传入的查询语句和 导出文件名,轻松批量动态导出数据文件。

另附shell 脚本下 执行sql语句块的代码示例

function excute_mysql()
{
mysql -u${MYSQL_USER} -p${MYSQL_PWD} -P${MYSQL_PORT} -h${MYSQL_HOST} -D${MYSQL_NAME} <

当然 感叹号内 包住的 文本可以通过参数传进来,将函数打包成公共 函数。

此外在这个范围内还能使用mysql 的注释 --

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!