>  기사  >  데이터 베이스  >  MySQL储存过程的备份和还原技巧

MySQL储存过程的备份和还原技巧

WBOY
WBOY원래의
2016-06-07 16:52:501118검색

在转储的数据库中转储存储程序(函数和程序)。使用---routines产生的输出包含CREATE PROCEDURE和CREATE FUNCTION语句以重新创建子

在转储的数据库中转储存储程序(函数和程序)。使用---routines产生的输出包含CREATE PROCEDURE和CREATE FUNCTION语句以重新创建子程序。但是,这些语句不包括属性,例如子程序定义者或创建和修改时间戳。这说明当重载子程序时,对它们进行创建时定义者应设置为重载用户,时间戳等于重载时间。

如果你需要创建的子程序使用原来的定义者和时间戳属性,,不使用--routines。相反,使用一个具有mysql数据库相应权限的MySQL账户直接转储和重载mysql.proc表的内容。

show procedure status;

show create procedure autoinsert;

DELIMITER ;;

CREATE PROCEDURE `autoinsert`()
begin
declare i int;
set i=1;
while(iinsert into t10 values (i,'name');
set i=i+1;
end while;
END;;

DELIMITER ;

备份mysqldump -u root -p123 --socket=/usr/local/mysql1/var/mysql.sock -R --no-data --no-create-db --no-create-info --all-database > /root/mysqllog/test.sql

mysqldump -u root -p123 --socket=/usr/local/mysql1/var/mysql.sock mysql proc > /root/mysqllog/test.sql

还原source /root/mysqllog/test.sql

use mysql
source /root/mysqllog/test.sql 

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.