재우니 개발자 블로그

 

 

 

문제의 원인은 거의 90% 이상이 DRIVER= 항목 누락 또는 오타입니다.

Python에서 MSSQL에 접속하려고 할 때 발생한 오류:

('IM002', '[IM002] [Microsoft][ODBC 드라이버 관리자] 데이터 원본 이름이 없고 기본 드라이버를 지정하지 않았습니다. (0) (SQLDriverConnect)')

 

이 오류는 ODBC 드라이버가 지정되지 않았거나, 잘못된 커넥션 문자열을 사용했기 때문에 발생합니다. 이를 해결하기 위해 아래 단계를 따라 설정하세요.


✅ 1. MSSQL ODBC 드라이버가 설치되어 있는지 확인

Windows 기준

 

SQL Server용 ODBC 드라이버 다운로드 - ODBC Driver for SQL Server

Microsoft ODBC Driver for SQL Server를 다운로드하여 SQL Server 및 Azure SQL Database에 연결하는 네이티브 코드 애플리케이션을 개발합니다.

learn.microsoft.com

 


✅ 2. Python에서 pyodbc를 사용한 올바른 커넥션 문자열 예시

import pyodbc

conn = pyodbc.connect(
    "DRIVER={ODBC Driver 18 for SQL Server};"
    "SERVER=서버주소 또는 IP,포트;"
    "DATABASE=데이터베이스명;"
    "UID=아이디;"
    "PWD=비밀번호;"
    "TrustServerCertificate=yes;"  # SSL 관련 경고 방지
)

cursor = conn.cursor()
cursor.execute("SELECT 내용필드 FROM 테이블명")
rows = cursor.fetchall()

for row in rows:
    print(row)

예시:

conn = pyodbc.connect(
    "DRIVER={ODBC Driver 18 for SQL Server};"
    "SERVER=127.0.0.1,1433;"
    "DATABASE=MyDB;"
    "UID=sa;"
    "PWD=mypassword;"
    "TrustServerCertificate=yes;"
)

✅ 3. 드라이버 이름 확인하는 방법

드라이버 이름이 정확해야 연결됩니다.

import pyodbc
print(pyodbc.drivers())

 

출력 예:

['ODBC Driver 17 for SQL Server', 'ODBC Driver 18 for SQL Server']

 

위 리스트 중 하나를 DRIVER={...}에 정확히 넣으세요.


✅ 4. 엑셀 파일로 저장하는 방법 (Pandas + pyodbc)

import pandas as pd
import pyodbc

conn = pyodbc.connect(
    "DRIVER={ODBC Driver 18 for SQL Server};"
    "SERVER=127.0.0.1,1433;"
    "DATABASE=MyDB;"
    "UID=sa;"
    "PWD=mypassword;"
    "TrustServerCertificate=yes;"
)

query = "SELECT 내용필드 FROM 테이블명"
df = pd.read_sql(query, conn)

# 엑셀로 저장
df.to_excel("output.xlsx", index=False, encoding='utf-8-sig')

🛠️ 문제 해결 체크리스트

항목 확인

ODBC 드라이버 설치됨
드라이버 이름 정확함
연결 문자열 구성 정확함
방화벽/포트 허용
SSL 설정 (TrustServerCertificate)