[파이썬] 파이썬에서 MySQL 데이터베이스 연결하는 방법
- 취미생활/프로그래밍
- 2024. 10. 25.
파이썬에서 MySQL을 연결하기 위해서는 MySQL과의 연결을 하는 라이브러리를 설치해야 합니다. 파이썬에서 MySQL에 연결하기 위한 라이브러리 pymysql과 mysql-connector가 있습니다. pymysql은 MySQL의 공식 라이브러리가 아닌, 서드파티 라이브러리로, 파이썬 커뮤니티가 개발하고 유지보수 하고 있습니다.생각보다 많은 사용자가 pymysql 라이프러리를 활용해 MySQL 연결에 사용하고 있습니다. mysql-connector는 MySQL 개발팀에서 직접 제공하는 공식 라이브러리로, MySQL과의 호환성과 안정성에 있어 보장이 강합니다. 따라서 저는 이번에 mysql-connectory를 활용해 MySQL 데이터베이스와 연동하는 방법에 대해서 알아보겠습니다.
1. MySQL Connector 라이브러리 설치하기
activate 가상환경이름
pip install mysql-connector-python
우선 아나콘다3를 이용해 가상환경을 만들어서 사용중이라면 Anaconda Prompt에서 가상환경을 활성화 시켜주는 명령어 activate 가상환경명 을 입력해 가상환경에 들어가 pip install mysql-connector-python을 입력해 MySQL 라이브러리를 설치합니다.
또는
Anaconda Navigator 프로그램에서 Environments에 만들어진 Mysql-connector-python 라이브러리를 설치할 가상환경을 선택해주고 오른쪽 화면에 ALL 또는 Not installed를 선택하고 옆에 mysql-connector-python 라이브러리를 검색해 체크박스를 선택 오른쪽 하단의 Apply 버튼을 눌러 설치가 가능합니다.
2. 데이터베이스 연결하기
import mysql.connector
# MySQL 데이터베이스 연결
try:
connection = mysql.connector.connect(
host="localhost", # MySQL 서버 주소
user="your_username", # 사용자 이름
password="your_password", # 비밀번호
database="your_database" # 데이터베이스 이름
)
if connection.is_connected():
print("MySQL 데이터베이스에 성공적으로 연결되었습니다.")
except mysql.connector.Error as e:
print(f"연결 실패: {e}")
finally:
if connection.is_connected():
connection.close()
print("MySQL 연결이 종료되었습니다.")
- host : 데이터베이스가 위치한 서버 주소를 입력합니다. ex) "127.0.0.1"
로컬 테스트에서는 localhost 사용해도 상관없습니다. - user : 데이터베이스에 접근할 MySQL 사용자 계정 ex)"root" or " admin" 등
- password : 계정의 비밀번호 입력
- database : 연결하고자 하는 데이터베이스 이름
연결이 성공적으로 완료되면 MySQL 데이터베이스에 성공적으로 연결되었습니다. 묵구가 출력됩니다.
3. 데이터베이스에서 SELECT 쿼리 실행하기
import mysql.connector
# MySQL 데이터베이스 연결
try:
connection = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
cursor = connection.cursor()
cursor.execute("SELECT * FROM table_name") # 원하는 SQL 쿼리
result = cursor.fetchall()
for row in result:
print(row)
except mysql.connector.Error as e:
print(f"쿼리 실행 오류: {e}")
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL 연결이 종료되었습니다.")
- cursor() : 데이터베이스 작업을 위한 커서를 생성합니다.
- execute() : SQL 쿼리를 실행합니다.
- fetchall() : 쿼리 결과를 모두 가져와 리스트로 반환합니다.
데이터베이스 연결 밑에 데이터베이스 작업을 위한 cursor를 생성합니다. cursor() 객체는 SQL쿼리를 실행하고 결과를 관리할 수 있게 도와줍니다. mysql-connector나 pymysql 같은 데이터베이스 연결 라이브러리에서 cursor() 메서드를 호출하여 커서를 생성한 후, 이를 통해서 SQL 명령어를 데이터베이스에 전달하고 결과를 받을 수 있습니다. cursor 객체는 execute()메서드를 사용하여 SQL 쿼리를 데이터베이스에 실행합니다.
저는 제가 가지고 있는 데이터베이스에 cou_category 라는 테이블을 만들고 테이블의 내용을 한번 불러와봤습니다.
4. INSERT, UPDATE, DELETE 쿼리 실행하기
try:
connection = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
cursor = connection.cursor()
sql = "INSERT INTO table_name (column1, column2) VALUES (%s, %s)"
values = ("value1", "value2")
cursor.execute(sql, values)
connection.commit() # 변경 사항을 저장합니다.
print(f"{cursor.rowcount}개의 행이 삽입되었습니다.")
except mysql.connector.Error as e:
print(f"쿼리 실행 오류: {e}")
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL 연결이 종료되었습니다.")
- commit() : 데이터베이스에 변경 사항을 저장합니다.
- rowcount: 영향을 받은 행 수를 반환합니다.
commit()은 데이터베이스에 변화가 있는 쿼리( INSERT, DELETE, UPDATE)를 실행할 때 commit()을 호출해야 실제로 데이터베스에 적용됩니다.
'취미생활 > 프로그래밍' 카테고리의 다른 글
[공부] pyqt5 프로젝트 간단 기록 2024.11.06 (8) | 2024.11.06 |
---|---|
[공부] pyqt5 프로젝트 간단 기록 2024.10.31 (0) | 2024.10.31 |
파이썬 GUI 만들기 Qt Designer 다운로드 및 설치(간단 사용법) (1) | 2024.10.25 |
[자동화 사이트 만들기] 1. 카테고리 생성 (3) | 2024.10.24 |
[공부] Python 코딩을 위한 셋팅! (13) | 2024.10.08 |