mssql to mysql data

빈번하지 않은 mssql -> mysql 로의 DB porting 문제에 골머리를 앓다가 적합한 방법을 찾아내서 그 방법을 제시해본다.

mssql 2000 에 한글을 포함하는 DB를 가진 유저가 mysql로 데이터를 변환하는데 있어서

민감한 부분까지 다 전달되진 않지만 데이터를 유실당하지 않고 사용할 수 있는 적합한 툴이 있다.

Google 에서 mssql to mysql 로 검색을 해보면 다음과 같은 페이지를 만날 수 있다.

http://www.kofler.cc/mysql/mssql2mysql.html

친절하게도 무료로 배포하고 있는데… 잘 읽어보면 답이 있을 것이다.

mssql2mysql-gui2.zip 파일 (첨부파일) 을 다운받아서 사용해보면 적절한 interface로 구성된걸 볼 수 있다.

잘써보자… 하지만 시행착오를 좀 줄이고자 하면 다음을 읽어보면 도움이 될 것 같다.

내가 작업하려는 PC에 mysql을 설치해서 그 곳으로 데이터를 빼낼지 동작중인 원격 서버로 바로 데이터를 보낼지 결정한다.

전자를 선택했을 경우 dump 형식으로 파일을 복원해줘야 하는 번거로움이 있지만 원격 접속에 대한 문제점에서 안전할 수 있다.

후자를 선택해서 원격으로 바로 보내고자 할 경우 /etc/my.cnf 파일에서의 네트웍 설정이 원격지접근을 허용하는지 그리고, mysql 의 user 테이블에 host 값이 % 로 설정 되어 있는지 확인해 보자. 이에 대한 문서는 검색을 통하면 얼마든지 구할 수 있으니 스스로 해보시길…

이정도가 준비되었다면 네트웍설정이 잘 되어 있는지 확인한다.

이 프로그램의 특성상 mysql의 default port 값을 변동 할 수 없음으로 반드시 3306 이 TCP로 LISTEN 이 되어 있어야만 한다.

다음과 같은 명령어로 원격지 서버가 방화벽에 걸려있는지 확인한다.

$ telnet 123.xxx.xxx.xxx 3306

원격지에 대한 접근허용을 거부한다는 명령어가 나오지 않고 프롬프트가 열린다면 접근이 허용된것이다. (열렸음에도 접근이 안된다면 DB의 사용자 설정을 다시 확인해보자.. mysql 데몬을 재시작해주는 것도 있지말자)

윈도우에 mysql ODBC를 설치하고 연결을 해줘야만 이 프로그램을 사용할 수 있다.

만약 ODBC가 없다면 mssql 을 mysqldump 타입으로 파일로 만들어 낼 수 있는 기능이 있다.

물론 복원시켜주는 번거로움이 있겠지만 급한데로 쓰기 쉽다.

index 값이나 primary key값 date type 을 잘 변환 시켜준다.

간혹 윈도우용 mysql 서버로 전달된 파일을 dump 할때 한글이 깨지는 경우가 있는데 이럴경우 직접 client pc에 DB를 파일로 만들어내서 다시 서비스 해주고자 하는 서버에 dump 시켜주면 데이터를 완전히 재사용 할 수 있다.
1221123276.zip