파이썬에서 MySQL 데이터베이스를 연결하는 방법

조회수 24465회

파이썬 프로그램을 이용하여 MySQL 데이터베이스에 접속하는 방법을 알려주세요.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    파이썬을 이용하여 MYSQL에 접속하기

    1 - 설정

    제일 먼저, MySQL 드라이버를 설치해야 합니다. PHP와 달리, 파이썬에는 기본적으로 SQLite 드라이버만 설치되어 있습니다. 가장 많이 사용되는 패키지는 MySQLdb인데 easy_install을 이용해도 설치하기가 어려운 편입니다.

    윈도우즈 사용자라면, MySQLdb의 exe 파일을 다운받을 수 있습니다.

    리눅스의 경우, python-mysqldb가 패키지로 제공이 됩니다. 데비안 계열의 경우 sudo apt-get install python-mysqldb을, rpm 계열은 yum install mysql-python을, 마지막으로 모던 페도라의 경우에는 dnf install python-mysqldb를 커맨드 라인에 입력하시면 다운받을 수 있습니다.

    마지막으로 맥은 맥 포트를 이용하여 설치할 수 있습니다.

    2 - 사용법

    설치 후, 우선 컴퓨터를 재시작해줍니다. 필수적인 부분은 아니지만 재시작을 하지 않을 경우 발생할 수 있는 문제들이 간혹 있으니, 재시작하시는 것을 권장합니다.

    그런 다음, 다른 패키지처럼 아래와 같이 그냥 사용하시면 됩니다 :

    #!/usr/bin/python
    import MySQLdb
    
    db = MySQLdb.connect(host="localhost",    # your host, usually localhost
                         user="john",         # your username
                         passwd="megajonhy",  # your password
                         db="jonhydb")        # name of the data base
    
    # you must create a Cursor object. It will let
    #  you execute all the queries you need
    cur = db.cursor()
    
    # Use all the SQL you like
    cur.execute("SELECT * FROM YOUR_TABLE_NAME")
    
    # print all the first cell of all the rows
    for row in cur.fetchall():
        print row[0]
    
    db.close()
    

    물론, 이는 가장 기본적인 예시일 뿐, 다양한 가능성과 설정들이 존재합니다. 이에 대해선 이 문서를 참고하시면 좋을 것 같습니다.

    3 - 심화된 사용법

    작동방법을 익히고 나면, SQL을 수동적으로 쓰는 것을 방지하고 테이블들을 마치 파이썬 객체인 것처럼 사용하기 위해 ORM을 사용하고 싶어질 겁니다. 파이썬 커뮤니티에서 가장 유명한 ORM은 SQLAlchemy입니다.

    좀더 편안하게 작업을 하고 싶으시다면 이를 사용하는 것을 강력히 추천합니다.

    개인적으로는 최근에 peewee라는 라이브러리를 알게 되었는데, 설치과정이 매우 쉽고 빠른 라이트한 ORM입니다. SQLAlchemy나 Django가 좀 과하다 싶은 작은 프로젝트나 독립적인 형태의 앱을 만들 때 매우 유용하게 쓰일 수 있습니다.

    import peewee
    from peewee import *
    
    db = MySQLDatabase('jonhydb', user='john',passwd='megajonhy')
    
    class Book(peewee.Model):
        author = peewee.CharField()
        title = peewee.TextField()
    
        class Meta:
            database = db
    
    Book.create_table()
    book = Book(author="me", title='Peewee is cool')
    book.save()
    for book in Book.filter(author="me"):
        print book.title
    
    Peewee is cool
    

    위의 예제는 바로 사용가능한 예제입니다. peewee를 설치하는 것 (pip install peewee) 외에는 추가적으로 할 일이 없습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)