No Image

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

2015-12-03 KENNETH 0

[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 이런식으로 현재 버전에서 지원하지 않는 구문오류로 인해 해당 프로시저가 정상적으로 생성되지 않았던 것.   찾느라 무척 애먹음.. ;;;;;   mysql upgrade : https://dev.mysql.com/doc/refman/5.7/en/upgrading.html#upgrade-procedure-logical

mariadb-10.0 mysqldump bug

2015-11-24 KENNETH 1

mysqldump bug on MariaDB 10.0   환경 OS : CentOS-6.7 (64bit) DB : MariaDB-10.0.21 / 설치형태 : 소스컴파일   내용 같은문자열을 가졌으나 문자열중 대/소문자를 구분하는 테이블들이 존재할 경우 mysqldump 를 이용한 백업시 ”CREATE TABLE”구문에 사용되는 테이블명이 중복되는 문제 (말로 푸는것이 어려우니 아래 내용을 봅시다)   예시 1. DB정보 db name : test table name : AbDc aBDc aBdc abdC   2. 테이블생성 mysql (test)> create table abdC (kk int(3), kk2 text); mysql (test)> create table aBdc (kk int(3), kk2 text); mysql (test)> create table aBDc (kk int(3), kk2 text); mysql (test)> create table AbDc (kk int(3), kk2 text);   3. DUMP mysqldump -uroot test AbDc > AbDc.sql mysqldump -uroot test aBDc > aBDc.sql mysqldump -uroot test aBdc > aBdc.sql mysqldump -uroot test abdC > abdC.sql   4. 백업 데이터 확인 # grep CREATE *.sql AbDc.sql:CREATE TABLE `AbDc` ( aBDc.sql:CREATE TABLE [ more… ]

error 1062 (23000) at line duplicate entry for key ‘primary’

2015-11-23 KENNETH 1

error 1062 (23000) at line XX duplicate entry for key ’primary’ 에 대한 고찰   데이터 마이그레이션 작업을 하면서 자꾸만 오류가 발생.. ERROR 1062 (23000) at line 23: Duplicate entry ‘4’ for key ‘PRIMARY’   운영중인 데이터베이스의 레코드와 해당 레코드를 DUMP한 내용을 아무리 살펴봐도 잘못된점을 찾을 수 없는 상황이었는데….   알고보니.. 동일한 테이블명이 존재하고 있었던것!!!!! ?????? 이런식으로.. -rw-rw—- 1 mysql mysql 462 Nov 23 17:57 abc.frm -rw-rw—- 1 mysql mysql 462 Nov 23 17:57 Abc.frm -rw-rw—- 1 mysql mysql 8192 Nov 23 17:57 abc.MAD -rw-rw—- 1 mysql mysql 8192 Nov 23 17:57 Abc.MAD -rw-rw—- 1 mysql mysql 8192 Nov 23 17:57 abc.MAI -rw-rw—- 1 mysql mysql 8192 Nov 23 17:57 Abc.MAI   물론 여기에 기재한것은 내가 테스트를 해본것이고.. 실제 이름은 다른거;;; ㅋ   만들어 보니까 정말로 저렇게 되더라고.. mysql (test)>create table abc (kk int(3), kk2 text); Query OK, 0 rows [ more… ]