메뉴 건너뛰기

GREATUSER

tech

[MySQL] ERROR 1457 (HY000): Failed to load routine after upgrade or migratrion

 

에러메세지

ERROR 1457 (HY000): Failed to load routine DB_NAME.MY_PROCEDURE_01. The table mysql.proc is missing, corrupt, or contains bad data (internal code -6)

상황

mysql 업그레이드 및 마이그레이션 작업 이후

 

데이터상태

proc 테이블에는 MY_PROCEDURE_01 이 제대로 들어가 있음

use mysql;

select * from proc where name='MY_PROCEDURE_01';

의 결과는 제대로 나옴…

 

호출시

call DB_NAME.MY_PROCEDURE_01;

show create procedure DB_NAME.MY_PROCEDURE_01;

등을 수행하게 되면..

위의 에러메세지가 발생한다는것…

 

원인

  • 테이블 손상
  • 데이터 마이그레이션 실패

등 여러가지가 있겠으나..

나같은 경우는…

구버전 -> 최신(mysql-5.7) 업데이트를 하다보니..

 

프로시저 선언시

CREATE TEMPORARY TABLE TMPTTT(REGDATE varchar(10))TYPE = HEAP

이런식으로 현재 버전에서 지원하지 않는 구문오류로 인해 해당 프로시저가 정상적으로 생성되지 않았던 것.

 

찾느라 무척 애먹음.. ;;;;;

위로