์ด๋ฒ ํฌ์คํ ์์๋ ํ์ด์ฌ(Python)์ ํ์ฉํ์ฌ ๋ณธ์ธ PC์ ์ค์น๋ mysql ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ์ฌ ์ฐ๋๋ DB์ ์ง์๋ฌธ(์ฟผ๋ฆฌ๋ฌธ)์ ๋ ๋ ค์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํด๋ณด๋ ๊ฒ๊น์ง ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
1. MySQL ์ค์น
๋ณธ ํฌ์คํ ์ ๋ด์ฉ์ MySQL์ด ์ค์น๋ ๊ฒ์ผ๋ก ๊ฐ์ ํฉ๋๋ค(์ด ํฌ์คํ ์ ๊ฒฝ์ฐ 5.7๋ฒ์ ์ฌ์ฉ). ๊ทธ๋ผ์๋ ์ค์น ๋งํฌ๋ฅผ ์ฒจ๋ถํ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
๋ค๋ฅธ ๋ฒ์ ์ ๊ณ ๋ฅด๊ณ ์ถ์ผ์๋ฉด:
2. mysql-connector-python ์ค์น
ํ์ด์ฌ(Python)์์ mysql์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ mysql-connector-python์ ์ฌ์ฉํฉ๋๋ค. ์ค์น ๋ช ๋ น์ด๋ ์๋์ ๊ฐ์ต๋๋ค.
pip install mysql-connector-python
3. Python ์ฝ๋๋ก mysql ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐํ๊ธฐ
(1) MySQL Connector๋ก ์ฐ๊ฒฐํ๊ธฐ : ๊ฐ์ฅ simpleํ ๋ฒ์
user์๋ ์ฌ์ฉ์ id๋ฅผ password์๋ ์ฌ์ฉ์ ์ํธ๋ฅผ ์ ๋ ฅํด์ผ ํฉ๋๋ค. host์๋ mysql์๋ฒ ์ฃผ์๋ฅผ ์ ๋ ฅํด์ผ ํ๊ณ , database์๋ ์ฐ๊ฒฐ์ ์ํ๋ database๋ช ์ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
import mysql.connector
# (1) MYSQL ์ฐ๊ฒฐ
cnx = mysql.connector.connect(user='root', password='password',
host='127.0.0.1',
database='db1')
# (2) MYSQL ์ฐ๊ฒฐ ์ข
๋ฃ
cnx.close()
(2) MySQL Connector๋ก ์ฐ๊ฒฐํ๊ธฐ : ๋ณด๋ค ์์ ํ ์์ธ ๋ฒ์
์์ธ ์ฒ๋ฆฌ(Try-Exception)์ ์ง์(์ฟผ๋ฆฌQuery)๋ฅผ ๋ ๋ฆฌ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ค๋ ์์ ๋ฅผ ํฌํจํ ๋ฒ์ ์
๋๋ค.
์๋์ ์ฝ๋์ฒ๋ผ ์๋ฒ์ mysql ๋ฒ์ ๋ ์ฐ์ด๋ณผ ์ ์์ต๋๋ค.
import mysql.connector
try:
# (1) MYSQL ์ฐ๊ฒฐ
connection = mysql.connector.connect(
host = '127.0.0.1',
database = 'db1',
user = 'root',
password = 'password'
)
if connection.is_connected():
db_info = connection.get_server_info()
print('mysql Version : ', db_info)
# (2) ์ปค์ ๋ง๋ค๊ธฐ
cursor = connection.cursor()
# (3) ์ํ๋ ์ฟผ๋ฆฌ๋ฌธ ๋ฑ ์คํ
cursor.execute('show tables;')
# (4) ์ปค์์์ ์คํ ๊ฒฐ๊ณผ ํ์ค์ฉ ๊ฐ์ ธ์ค๊ธฐ
row = cursor.fetchone()
while row is not None:
print(row)
row = cursor.fetchone()
except Error as e:
print('Database Error: ',e)
finally:
# (5) ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค์์ ์ปค๋ฅ์
์ ๋ชจ๋ ๋ซ์
cursor.close()
connection.close()
print('MySQL Connection Close')
python์ผ๋ก mysql ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ๋๋ฐ ๋์์ด ๋์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ๋์์ด ๋์ จ๋ค๋ฉด, ์ข์์์ ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ํฌ์คํ ์ ํ๋๋ฐ ํฐ ํ์ด ๋ฉ๋๋ค. ๐
๋๊ธ