mariadb-10.0 mysqldump bug

mysqldump bug on MariaDB 10.0

logo_mariadb_01

 

환경

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 `AbDc` (
aBdc.sql:CREATE TABLE `AbDc` (
abdC.sql:CREATE TABLE `AbDc` (


mysqldump로 생성된 sql파일의 ”CREATE TABLE” 구문에는 각각

AbDc
aBDc
aBdc
abdC

4개의 테이블명이 들어있어야 하지만.. 각각의 파일 모두 ’AbDc’ 라는 이름으로 존재함

보통은 같은문자열을 대/소문자 구별해서 사용하는 사례가 거의 없겠으나

사용을 하고 있는 시스템에서 데이터 이관등의 작업시 상당한 에로사항이 발생할 수 있음.

 

5. 그 외 버전

mysql-5.7

mariadb-10.1

에서는 동일한 조건으로 테스트시 문제가 발생하지 않았음

About KENNETH 14900 Articles
지락문화예술공작단

1 Trackback / Pingback

  1. error 1062 (23000) at line duplicate entry for key 'primary' - 지락문화예술공작단

Leave a Reply

Your email address will not be published.


*


이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.