shell实现,将mysql每个存储过程导出为单个文件

#shell实现,将mysql中存储过程代码直接导出为文件
dbcn="mysql -h172.16.1.194 -uroot -p123456 ";
db=BCReport_Sync_Executor;
ii=0;
ct=`$dbcn -N -e " select count(1) from mysql.proc as p where 1=1 and p.db='$db' and p.type like 'P%';"`;
mkdir -p /chenenhui/$db

while true;
do
if [ $ii -lt $ct ]
then
p=$ii;
let ii++;
echo p=$p
echo ii=$ii

spname=`$dbcn -N -e " select p.name from mysql.proc as p where 1=1 and p.db='$db' and p.type like 'P%' limit $p,1;"`;
echo spname=$spname
sleep 0;
ss=`$dbcn -N -e "
SELECT
CONCAT(
'
DELIMI','TER ',REPEAT(CHAR(36),2),'

USE ',CHAR(96),  p.db,CHAR(96),REPEAT(CHAR(36),2),'

DROP PROCEDURE IF EXISTS ',CHAR(96),p.name,CHAR(96), REPEAT(CHAR(36),2),'

CREATE DEFINER=',CHAR(96),
LEFT(DEFINER, -1+LOCATE('@',DEFINER)),
CHAR(96),'@',CHAR(96),
RIGHT(DEFINER,LENGTH(DEFINER)-LOCATE('@',DEFINER)),
CHAR(96)
,' PROCEDURE ',CHAR(96),p.name ,CHAR(96),'(',p.param_list,')
', p.body_utf8 ,REPEAT(CHAR(36),2) ,'

DELIMI','TER ;
' ) AS sql_create
FROM mysql.proc AS p
WHERE 1=1
and p.db='$db'
and p.type LIKE 'P%'
AND p.name ='$spname'
;"
`
echo -e "$ss" > /chenenhui/$db/$spname.sql
echo $spname
else
echo '_while finished';
exit 0;
fi
done

时间: 2024-11-06 21:09:38

shell实现,将mysql每个存储过程导出为单个文件的相关文章

使用shell脚本调用mysql数据库存储过程,并设置定时任务

本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调用mysql数据库存储过程,如下: #!/bin/bash#0 1 * * * sh /home/drmTrans3/rj_proc.shhost1=127.0.0.1user=systempasswd=linuxport=3306mysql -h${host1} -u${user} -p${pas

navicat for mysql 将结果导出到txt文件

其实navicat 是带这个导出功能的,可是很多人不知道怎么用. 1.如图:查询sql语句.得到结果 2.文件->导出向导 3.如上图,点击下一步,然后会出来开始按钮,点击开始,数据就会导出. 4.一直点击下一步, 5.最后上面的路径下面找到刚刚的文件夹.就是你想要导出的数据.

phpmyadmin导入导出大数据文件的办法

在phpmyadmin的使用中,经常需要进行导入导出数据库的操作. 但是在导入导出大型数据库文件的时候经常会只是部分导出或者部分导入. 或者是导入导出不成功. 原因就是服务器和php.mysql限制了导出导入数据库文件的大小.而改相应的配置又十分繁琐,所以这里提供一个绕过导出导入有大小限制的办法. 这个思路就是直接在服务器上面进行导出导入.过程如下 将phpMyAdmin/config.sample.inc.php 文件改名为phpMyAdmin/config.inc.php并打开编辑 * Di

mysql数据库导入导出 查询 修改表记录

mysql数据导入导出: 导入: 把系统的文件的内容,保存到数据库的表里 导入数据的基本格式:mysql> load data infile "文件名" into table 表名 fields terminated by '分隔符' lines terminated by '\n'; 实例:把系统用户信息保存到hydra01库下的userinfo表里 mysql> create table userinfo(name char(20),password char(1),u

MySQL mysqldump数据导出详解 --dump-slave 注意事项

http://www.cnblogs.com/chenmh/p/5300370.html 介绍 在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具:它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有的参数详细说明列出来. 语法: 默认不带参数的导出,导出文本内容大概如下:创建数据库判断语句-删除表-创建表-锁表-禁用索引-插入数据-启用索引-解锁表. Usage: mysqldump [OPTIONS] databas

MYSQL数据导入导出

在不同操作系统或MySQL版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生.所以一般推荐用SQL脚本形式导入.下面分别介绍两种方法. 进入cmd 导出所有数据库:输入:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径] 导出数据和数据结构:输入:mysqldump -u [数据库用户名] -p [要备份的数据库名称]>[备份文件的保存路径] 导出数据库中的某各表: 输入: mysqldump -u [数据库用户名] -p [要备份的数据库名称] [要备份的数据

MySQL mysqldump数据导出详解

1.导出所有数据库 该命令会导出包括系统数据库在内的所有数据库 <span style="font-size:18px;">mysqldump -uroot -proot --all-databases >/tmp/all.sql</span> 2.导出db1.db2两个数据库的所有数据 mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql 3.导出db1中的a1.a2表 注意导出指定表

MYSQL 数据库导入导出命令

MySQL命令行导出数据库 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql   (输入后会让你输入进入MySQL的密码

mysql——mysqldump命令导出数据库以及导出表的各种导出情况(参数大全)

导出某个数据库下面所有表的结构: mysqldump -u root -p123 -d see > C:\Users\del\Desktop\db.sql 导出某个数据库下所有表结构及表数据(不加-d): mysqldump -u root -p123 see > C:\Users\del\Desktop\dbsy.sql --------------------------------------------------------------------------------- 导出某个