DBMS/SQL Server (MS-SQL)

[SQL Server/MS-SQL] MS-SQL 에서 MySQL Linked Server 연결

RYEAN 2022. 9. 15. 12:16
반응형

 


 

1. MySQL 용 ODBC 다운로드

https://dev.mysql.com/downloads/connector/odbc/

 

MySQL :: Download Connector/ODBC

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86

dev.mysql.com

 

 

2. ODBC Data Source Administrator (64-bit) 실행 ▶ [User DSN/System DSN] 선택  ▶ [Add] 선택

    ( ODBC 데이터 원본 관리자 (64-bit) 실행 ▶ [사용자 DSN/시스템 DSN] 선택 ▶[추가] 선택 )

 * User DSN: 특정 사용자에 대한 DSN, System DSN: 시스템 전체에서 사용되는 DSN

 

 

 

3. MySQL ODBC ANSI Driver 혹은 MySQL ODBC Unicode Driver 선택

 ( 저는 MySQL ODBC 8.0 Unicode Driver 를 선택 )

 

 

4. 구성 정보 입력

 - Data Source Name: 데이터 소스 이름

 - TCP/IP Server: 연결하려는 MySQL 서버 IP 및 Port

 - User/Password: MySQL DB 접속 계정 및 암호 

 

 

 

5. 등록된 정보 확인

 

이렇게 ODBC 데이터 소스 등록 작업이 끝났습니다.

이제 MS-SQL 에서 Linked Server 등록을 해줍니다.

 

 

1. Linked Server 등록

EXEC master.dbo.sp_addlinkedserver
@server ='linkedserver_test',	-- linked server 명
@srvproduct='MySQL',		-- 데이터 원본 소스명
@provider='MSDASQL',            -- 공급자 고유 식별자 
@datasrc='test_linked'          -- ODBC에 등록한 사용자/시스템 DSN 명

 

2. Linked Server 연결 계정 등록

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname='linkedserver_test',	-- linked server 명
@useself='false',			-- 로그인 이름 사용 유무
@locallogin=NULL,			-- 로컬 서버 로그인 여부
@rmtuser='login',			-- MySQL 접속 DB 계정명
@rmtpassword='Password12#$'		-- MySQL 접속 DB 계정 암호

 

3.  RPC/RPC Out 옵션 활성화 (프로시저 호출하려면 필요)

EXEC master.dbo.sp_serveroption
@server='linkedserver_test',	-- linked server 명
@optname='rpc',
@optvalue='true'

EXEC master.dbo.sp_serveroption
@server='linkedserver_test',	-- linked server 명
@optname='rpc out',
@optvalue='true'

 

Linked Server 연결 완료!

이제 쿼리를 통해 서버 등록 정보와 MySQL 에 쿼리를 날려보자.

 

1. Linked Server 정보 확인

SELECT * FROM master.dbo.sysservers

 

2. MySQL 서버에 쿼리 조회 

-- SELECT * FROM  OPENQUERY (Linked Server Name,'Query')
SELECT * FROM OPENQUERY (linkedserver_test,'select * from test limit 100')

 

 

 

 

반응형