라즈베리파이에서 파이썬을 이용한 MariaDB 사용하기

안녕하세요. AkibaTV입니다.

이번에 소개할 내용은 라즈베리파이에서 파이썬을 이용한 MariaDB 사용하기 입니다.

MariaDB에 Connection, Select, Insert, Update, Delete 사용법을 알아보도록 하겠습니다.

우선 MariaDB에 테이블을 생성을 하도록 하겠습니다.

아직 환경이나 DB가 설치가 안되어 있으신 분은 라즈베리파이 또는 리눅스에서 NPM (Nginx + PHP + MariaDB) 설치하기를 참고해주시기 바랍니다.

우선 간단한 테이블을 만들어 보도록 하겠습니다.

phpMyAdmin에 로그인을 해주시기 바랍니다.

image

akibatv 데이터베이스를 펼치시면 New를 클릭해 주시기 바랍니다.

image

1
2
3
4
5
6
7
8
9
10
11
12
# 테이블명, 칼럼, 종류, 사이즈등을 설정을 해주시기 바랍니다.
----------+---------+--------
Name | Type | Size
----------+---------+--------
name | VARCHAR | 10
----------+---------+--------
age | INT | 3
----------+---------+--------
birthday | VARCHAR | 10
----------+---------+--------
site_url | VARCHAR | 100
----------+---------+--------

위와같이 하셨으면 저장을해서 테이블을 추가를 해주시기 바랍니다.

image

그러면 위와같이 test2이란 테이블이 추가가 되었습니다.

그럼 우선 Visual Studio Code(비주얼 스튜디오 코드)를 실행해 주시기 바랍니다.

실행을 하셨으면 아래의 파일들을 추가를 해주시기 바랍니다.

1
2
3
4
5
python_mariadb.py
python_mariadb_select.py
python_mariadb_insert.py
python_mariadb_update.py
python_mariadb_delete.py

image

파일들을 추가를 하셨으면 python_mariadb.py에 아래와 같이 코딩을 해주시기 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import pymysql

try:
conn = pymysql.connect(
host='localhost',
user='akibatv',
password='akibatv',
db='akibatv',
charset='utf8mb4'
)

except pymysql as e:
print("Database Access Error")
sys.exit(1)

cur = conn.cursor()

print("DataBase Connection Success")

cur.close()
conn.close()

image

위와같이 작성을 하셨으면 이제 데이터베이스에 정상적으로 연결이 되는지 확인을 해보도록 하겠습니다.

라즈베리파이의 적당한곳에 작성하신 소스파일을 올려주시기 바랍니다.

라즈베리파이에 VNC로 접속후 터미널을 실행해 주세요.

image

파이썬에서 MariaDB를 사용하기 위해선 모듈을 설치를 하셔야만 합니다.

터미널에 아래의 명령어를 실행을 해주시기 바랍니다.

1
$ sudo python3 -m pip install pymysql

image

모듈 설치가 완료 되셨으면 아래의 명령어로 실행을 해주시기 바랍니다.

1
2
# 파이썬 3.x버전대
$ sudo python3 ./python_mariadb.py

image

위와같이 [DataBase Connection Success]가 출력이 되면서 정상적으로 실행된것을 확인 되었습니다.

이제 Insert를 해보도록 하겠습니다.

Visual Studio Code(비주얼 스튜디오 코드)에서 python_mariadb_insert.py파일을 여시고 아래와 같이 코딩해 주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import pymysql

try:
conn = pymysql.connect(
host='localhost',
user='akibatv',
password='akibatv',
db='akibatv',
charset='utf8mb4'
)

except pymysql as e:
print("Database Access Error")
sys.exit(1)

cur = conn.cursor()

print("DataBase Connection Success")

sql = """ INSERT INTO test2 (name, age, birthday, site_url)
VALUES (%s, %s, %s, %s) """

cur.execute(sql, ('AkibaTV', '99', '2020/01/01', 'https://playneko.com/'))
conn.commit()

print("Data Insert Success")

cur.close()
conn.close()

image

라즈베리파이의 적당한곳에 작성하신 소스파일을 올려주시기 바랍니다.

image

아래의 명령어로 실행을 해주시기 바랍니다.

1
2
# 파이썬 3.x버전대
$ sudo python3 ./python_mariadb_insert.py

image

데이터 추가 성공이라고 출력이 되었으면 실제로 데이터베이스

정상적으로 입력이 되었는지 확인을 해보도록 하겠습니다.

image

데이터베이스에도 정상적으로 등록이 된것을 확인이 되었습니다.

이제 Select를 해보도록 하겠습니다.

Visual Studio Code(비주얼 스튜디오 코드)에서 python_mariadb_select.py파일을 여시고 아래와 같이 코딩해 주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import pymysql

try:
conn = pymysql.connect(
host='localhost',
user='akibatv',
password='akibatv',
db='akibatv',
charset='utf8mb4'
)

except pymysql as e:
print("Database Access Error")
sys.exit(1)

cur = conn.cursor()

print("DataBase Connection Success")

sql = " SELECT * FROM test2 "
cur.execute(sql)

for row in cur:
print(row)

cur.close()
conn.close()

image

라즈베리파이의 적당한곳에 작성하신 소스파일을 올려주시기 바랍니다.

image

아래의 명령어로 실행을 해주시기 바랍니다.

1
2
# 파이썬 3.x버전대
$ sudo python3 ./python_mariadb_select.py

image

데이터베이스에 등록된 데이터가 정상 출력된것을 확인 하실수 있습니다.

이제 Update를 해보도록 하겠습니다.

Visual Studio Code(비주얼 스튜디오 코드)에서 python_mariadb_update.py파일을 여시고 아래와 같이 코딩해 주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import pymysql

try:
conn = pymysql.connect(
host='localhost',
user='akibatv',
password='akibatv',
db='akibatv',
charset='utf8mb4'
)

except pymysql as e:
print("Database Access Error")
sys.exit(1)

cur = conn.cursor()

print("DataBase Connection Success")

sql = """ UPDATE test2 SET
age = %s,
birthday = %s,
site_url = %s
WHERE name = %s """

cur.execute(sql, ('22', '1900/07/31', 'https://akibatv.net/','AkibaTV'))
conn.commit()

print("Data Update Success")

cur.close()
conn.close()

image

라즈베리파이의 적당한곳에 작성하신 소스파일을 올려주시기 바랍니다.

image

아래의 명령어로 실행을 해주시기 바랍니다.

1
2
# 파이썬 3.x버전대
$ sudo python3 ./python_mariadb_update.py

image

데이터 갱신 성공 이라고 출력이 되셨으면 문제없이 갱신이 되었습니다.

실제로 데이터베이스 정상적으로 갱신이 되었는지 확인을 해보도록 하겠습니다.

image

데이터베이스에도 정상적으로 갱신이 된것을 확인이 되었습니다.

이제 Delete를 해보도록 하겠습니다.

Visual Studio Code(비주얼 스튜디오 코드)에서 python_mariadb_delete.py파일을 여시고 아래와 같이 코딩해 주세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import pymysql

try:
conn = pymysql.connect(
host='localhost',
user='akibatv',
password='akibatv',
db='akibatv',
charset='utf8mb4'
)

except pymysql as e:
print("Database Access Error")
sys.exit(1)

cur = conn.cursor()

print("DataBase Connection Success")

sql = """ DELETE FROM test2 WHERE name = %s """

cur.execute(sql, ('AkibaTV'))
conn.commit()

print("Data Delete Success")

cur.close()
conn.close()

image

라즈베리파이의 적당한곳에 작성하신 소스파일을 올려주시기 바랍니다.

image

아래의 명령어로 실행을 해주시기 바랍니다.

1
2
# 파이썬 3.x버전대
$ sudo python3 ./python_mariadb_delete.py

image

데이터 삭제 성공 이라고 출력이 되셨으면 문제없이 삭제가 된것입니다.

실제로 데이터베이스 정상적으로 삭제가 되었는지 확인을 해보도록 하겠습니다.

image

데이터베이스에도 정상적으로 삭제가 된것을 확인이 되었습니다.

이렇게해서 파이썬에서 MariaDB의 Select, Insert, Update, Delete를 해보았습니다.