2009-06-09 4 views

답변

2

당신은 mysqldump의 "--routines"옵션을 원하는 등 모든 것을, 즉 스키마, 데이터 저장, 발동, 트리거를 복사 할. 덤프 된 데이터베이스의

덤프 스토어드 루틴 (프로 시저 및 기능) : --routines 플래그에 대한 설명서에서

. 이 옵션을 사용하려면 mysql.proc 테이블에 대해 SELECT 권한이 필요합니다. - 루틴을 사용하여 생성 된 출력에는 루틴을 다시 작성하는 CREATE PROCEDURE 및 CREATE FUNCTION 문이 포함되어 있습니다. 그러나 이러한 문에는 루틴 생성과 수정 시간 소인과 같은 속성이 포함되지 않습니다. 즉, 을 의미합니다. 루틴이 다시로드되면 타임 스탬프가 다시로드 시간과 동일하게 만들어집니다.

원래 타임 스탬프 속성으로 다시 작성된 루틴이 필요하면 - 루틴을 사용하지 마십시오. 대신 mysql.proc 테이블의 내용을 덤프하고 다시로드하십시오. 에는 mysql 데이터베이스에 대한 적절한 권한이있는 MySQL 계정을 사용하십시오.

이 옵션은 MySQL 5.1.2에 추가되었습니다. 그 전에는 저장된 루틴이 으로 덤프되지 않습니다. 루틴 DEFINER 값은 MySQL 5.1.8까지 으로 덤프되지 않습니다. 즉, 루틴이 다시로드 될 때 5.1.8 이전에 을 의미하며, 다시 작성 사용자에게 정의자를 으로 작성합니다. 원래 정의 자로 다시 작성된 루틴이 필요하면 의 내용을 앞서 설명한 으로 직접 덤프하고로드하십시오.

2
mysqldump -u root -p --routines --databases io \ 
| sed -e "s/;;/\$\$/g" \ 
> io.sql 

덤프를 시도하십시오. 및 가져 오기 명령 :

mysql -u root -p --fource --databases io < io.sql 
관련 문제