개발/DB

DB접속 TEST CODE(python)

-=HaeJuK=- 2025. 5. 13. 15:20
728x90
λ°˜μ‘ν˜•
DB 접속 ν…ŒμŠ€νŠΈ 도ꡬ μš”μ•½

πŸ“„ DB 접속 ν…ŒμŠ€νŠΈ 도ꡬ μš”μ•½

🧩 ν…ŒμŠ€νŠΈ λŒ€μƒ

  • MariaDB (포트 3306)
  • Microsoft SQL Server (포트 1433)

πŸ”§ ν…ŒμŠ€νŠΈ ν•­λͺ©

ν…ŒμŠ€νŠΈ μ’…λ₯˜ μ„€λͺ…
test1 DB 접속 ν›„ μ¦‰μ‹œ μ’…λ£Œ (μ—°κ²°λ§Œ 확인)
test2 DB 접속 β†’ ν•˜λ“œμ½”λ”©λœ 쿼리 μ‹€ν–‰ β†’ μ’…λ£Œ

πŸ§ͺ ν•˜λ“œμ½”λ”©λœ 쿼리 (test2)

DB νƒ€μž…μΏΌλ¦¬
MariaDBSELECT NOW()
MSSQLSELECT GETDATE()

πŸš€ λͺ…λ Ήμ–΄ μ˜ˆμ‹œ

# test1 - μ ‘μ†λ§Œ ν…ŒμŠ€νŠΈ (10회 반볡)
python test_db_loop.py test1 mariadb 127.0.0.1 3306 root mypass testdb 10

# test2 - 쿼리 ν…ŒμŠ€νŠΈ 포함 (5회 반볡)
python test_db_loop.py test2 mssql 127.0.0.1 1433 sa pass123 mydb 5

🧡 병렬 μ‹€ν–‰ μ˜ˆμ‹œ (λ©€ν‹° ν”„λ‘œμ„ΈμŠ€)

from multiprocessing import Process
from test_db_lib import test1_connect_only

def run_task():
    test1_connect_only(
        dbtype="mariadb",
        host="192.168.0.10",
        port="3306",
        user="root",
        password="mypassword",
        dbname="test"
    )

if __name__ == "__main__":
    processes = [Process(target=run_task) for _ in range(10)]
    for p in processes:
        p.start()
    for p in processes:
        p.join()

🧠 μ£Όμš” Python μ½”λ“œ ꡬ성 (test1/test2)

def test1_connect_only(dbtype, host, port, user, password, dbname):
    if dbtype == "mariadb":
        import pymysql
        conn = pymysql.connect(
            host=host, port=int(port), user=user, password=password,
            database=dbname, connect_timeout=5
        )
        conn.close()
        print("[OK] 접속/μ’…λ£Œ 성곡")
        return True

    elif dbtype == "mssql":
        import pyodbc
        conn_str = (
            f"DRIVER={{ODBC Driver 17 for SQL Server}};"
            f"SERVER={host},{port};DATABASE={dbname};UID={user};PWD={password};"
            f"TrustServerCertificate=yes;"
        )
        conn = pyodbc.connect(conn_str, timeout=5)
        conn.close()
        print("[OK] 접속/μ’…λ£Œ 성곡")
        return True

⚠️ 유의 사항

  • Windowsμ—μ„œλŠ” λ°˜λ“œμ‹œ __name__ == "__main__" 쑰건문 μ•ˆμ—μ„œ ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰
  • DB 계정 λ™μ‹œ 접속 μ œν•œ, 컀λ„₯μ…˜ ν’€ μ΅œλŒ€κ°’ λ“± 확인 ν•„μš”
  • 쿼리 μ‹€νŒ¨ λ˜λŠ” λ„€νŠΈμ›Œν¬ μ—λŸ¬λŠ” 둜그둜 좜λ ₯됨

728x90