SQL Server 2005에서 MySQL로 데이터를 내보내는 방법 [닫기]


87

나는 SQL Server 2005많은 데이터를 가져 오는 것에 대해 머리를 두들겨왔다 . 거의 300 개의 테이블이있는 데이터베이스를 받았는데 이것을 MySQL 데이터베이스로 바꿔야합니다. 내 첫 번째 호출은 bcp를 사용하는 것이었지만 불행히도 유효한 CSV를 생성하지 못합니다. 문자열이 캡슐화되지 않았으므로 쉼표가있는 문자열이있는 행 (또는 구분 기호로 사용하는 모든 행)을 처리 할 수 ​​없습니다. 그리고 분명히 CSV가 데이터 유형에 대해 아무것도 알려주지 않기 때문에 모든 create table 문을 직접 작성해야합니다.

더 나은 것은 SQL Server와 MySQL 모두에 연결할 수있는 도구가 있다면 복사를하는 것입니다. 뷰, 저장 프로 시저, 트리거 등을 잃게되지만 기본 유형 만 사용하는 테이블을 한 DB에서 다른 DB로 복사하는 것은 어렵지 않습니다.

아무도 그러한 도구를 알고 있습니까? 정수, 부동 소수점, 날짜 시간 및 문자열을 지원하는 한 얼마나 많은 가정이나 단순화가 발생하는지 신경 쓰지 않습니다. 어쨌든 많은 가지 치기, 정규화 등을해야하므로 키, 관계 등을 유지하는 데는 신경 쓰지 않지만 초기 데이터 세트가 빠르게 필요합니다!


1
MSSQL2MySQL 을 성공적으로 사용하는 사람들을 몇 명 들었지만 직접 보증 할 수는 없습니다.
Greg Hurlman 2008-08-01

1
SQLYob이 할 수 있다고 들었습니다. < webyog.com/en > 여기 : < searchsqlserver.techtarget.com/tip/… >
borjab

이 도구는 정확히 귀하가 요청한 것입니다 : Full Convert Enterprise . 사실, 뷰, 프로 시저 및 트리거가 손실되지만 거대한 테이블에 대해 고도로 최적화되어 있습니다. 모든 객체 (절차 등)을 변환하는 또 다른 방법 (더 비싼)입니다 MySQL로 SqlTran SQL 서버
미르 Bulic

1
여기에 비슷한 답 : stackoverflow.com/questions/11619177/...
야곱

1
@borjab : SQLyog는 이전 버전에서 ODBC를 사용했지만 더 이상 작동하지 않으므로이 작업에 대한 옵션이 아닙니다.
BlaM

답변:


59

내가 찾은 가장 좋은 방법은 MySQL에서 제공 하는 MySQL Migration Toolkit 입니다. 일부 대규모 마이그레이션 프로젝트에 성공적으로 사용했습니다.


2
+1-이제 EOL이며 MySQL Workbench에는 마이그레이션 플러그인 (과거 버전 5.2)이 포함되지만 지금은 다음 링크를 사용합니다. dev.mysql.com/downloads/gui-tools/5.0.html
Mark Robinson

DATE 또는 DATETIME 열을 변환하고 싶지 않습니다. :(
Robert Ivanc

1
참고 : 현재의 MySQL 마이그레이션 툴킷 (리눅스를 사용할 수 없습니다 dev.mysql.com/doc/migration-toolkit/en/... )
mkirk

1
My SQL Migration Toolkit에는 32 비트 버전의 JDK 5 업데이트 8 이상이 필요합니다 (버전 5 여야 함, 버전 6은 작동하지 않음). 여기에서 다운로드 할 수 있습니다. tinyurl.com/5snd6y3
casterle

9

MSSQL Management Studio를 사용하여 MySQL OLE DB로 테이블을 전환했습니다. 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 "작업-> 데이터 내보내기"로 이동하여 MsSQL OLE DB 원본, MySQL OLE DB 원본을 지정하고 두 데이터 원본 간의 열 매핑을 만들 수 있습니다.

MySQL 대상에 미리 데이터베이스와 테이블을 설정하고 싶을 것입니다 (내보내기는 테이블을 자동으로 생성하려고하지만 이로 인해 종종 오류가 발생 함). 데이터베이스를 마우스 오른쪽 버튼으로 클릭하여 "작업-> 스크립트 생성"을 사용하여 MySQL에서 테이블을 빠르게 생성 할 수 있습니다. 생성 스크립트가 생성되면 MSSQL에 존재하는 키워드 및 유형을 MYSQL로 단계별로 검색 / 교체해야합니다.

물론 평소처럼 데이터베이스를 백업하고 MYSQL에서 MSSQL 백업을 복원하는 유틸리티를 찾을 수도 있습니다. 그러나 하나가 있는지 확실하지 않습니다.


9

SQL Server 2005의 "표준", "개발자"와 "기업"판은이 SSIS SQL 서버에서 DTS를 대체, 2000 SSIS있는 자신의 DB에 연결 내장, 당신은 다른 사람을 위해 쓴 것을 연결을 찾을 수 있습니다 MySQL. 여기 에 한 가지 예가 있습니다. 연결이 완료되면 둘간에 데이터를 이동하는 SSIS 패키지를 만들 수 있습니다.

SQLServer에서 MySQL로 데이터를 이동할 필요는 없지만 MySQL 연결이 설치되면 두 SQLServer DB간에 데이터를 이동하는 것과 동일하게 작동한다고 생각합니다. 이는 매우 간단합니다.


8

자신의 PHP 솔루션을 롤링하면 한 DB에서 다른 DB로 스키마를 자동으로 복제하는 좋은 방법이 있는지 확실하지 않지만 확실히 작동합니다.

데이터를 복사하는 중이거나 두 DB간에 수정 된 스키마간에 변환하기 위해 어쨌든 사용자 지정 코드가 필요한 경우 PHP 5.2+ 및 PDO 라이브러리를 사용하는 것이 좋습니다. PDO ODBC를 사용하여 연결할 수 있습니다 (MSSQL 드라이버 사용). 다른 라이브러리를 사용하여 MSSQL에서 PHP로 큰 텍스트 필드와 멀티 바이트 문자를 가져 오는 데 많은 문제가있었습니다.


6

시도 할 또 다른 도구는 SQLMaestro 제품군 입니다. 정확한 도구를 결정하는 것은 약간 까다 롭지 만 여러 데이터베이스 플랫폼에 대한 다양한 작업을 처리하는 무료 및 구매 용 다양한 도구가 있습니다. MySQL 용 데이터 마법사 도구를 먼저 사용해 보는 것이 좋습니다. 필요한 적절한 "가져 오기"도구가있을 것이라고 믿기 때문입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.