본문 바로가기

Story/mysql

mysql db 낮은 버전에서 높은버전으로 이전시 에러날때 해결방법

반응형

mysql 3. 대나 4.0 대의 경우 mysqldump 로 백업받아 높은 버전으로 이전할경우 에러가 나고 이전이 안될경우가 있다.

mysqldump --no-create-info --complete-insert --quote-names -u아이디 -p비밀번호 디비명

위와 같이 하면 오류를 어느정도 막을수있다.

 

위 mysqldump 의 옵션에 대해서 설명하면

--quote-names : mysql 버전이 바뀌면서 테이블명이나 필드명이 사용할 수 없는 이름이 되어 오류가 발생합니다.(ex. password 라는 필드명)
덤프할 때 이 옵션을 추가해 주면 테이블명,필드명 양쪽에 ` 를 추가해주고 import시 데이타가 제대로 등록됩니다.

--no-create-info : mysql 테이블은 이미 업데이트 버젼에서 생성되어 있으므로 myql의 테이블 정보는 제외합니다.
--compete-insert : mysql을 덤프를 하면 확장 insert문을 만들어버립니다. 이것은 mysql 테이블의 user,db등 테이블 필드수가 변경이 되었으므로 user, db에 이 확장 insert 구문을 import 시키면 필드수가 맞지 않아 오류를 발생시킵니다. 이 옵션은 데이타뿐만 아니라 그 데이타에 맞는 필드수 정보도 만들어줍니다.

 

old password 문제는

/etc/my.cnf 에
old_passwords = 1

옵션을 넣어 구버젼 패스워드 방식을 지원하도록 설정

반응형