python으로 mysql연동하기
##python으로 mysql연동하기(윈도우 환경 windows10)
mysql 설치,계정,테이블 만들기
-
일단 httpS://downloads.mariadb.com/MariaDB 에서 각 운영체제에 맞는 mariadb를 다운받는다.
테스트이므로 mariadb사용
c:\maridb에 압축을 푼다 -
cmd 창을 관리자권한으로 실행시킨다. 그후 아래명령어입력
cd /mariadb/bin
mysql_install_db –-datadir=C:\mariadb\data –-service=mariaDBZip –-port=5306 -–password=1234그리고 작업관리자 창에서 서비스탭에서 mariaDBZip 이라는 서비스를 시작
– 여기서부터 본인은 HeidiSql 이라는 프로그램을 사용하여 진행함(cmd도 상관없음)
-
루트로 디비 접속 mysql -u root -p –port=5306 Enter your password :1234
-
디비 생성
CREATE DATABASE mydb default CHARACTER SET UTF8;
SHOW DATABAS # > #은 mysql에서 주석 입니다. -
계정만들고 권한 주기
CREATE USER ‘user01’ IDENTIFIED BY ‘1234’;
GRANT ALL PRIVILEGES ON mydb.* TO user01@localhost IDENTIFIED BY ‘1234’;
EXIT; -
새로운 계정으로 시작하고 4번에서 만든 mydb 사용
mysql -u user01 -p
use mydb -
mydb 데이터베이스에 guestbook 테이블생성
CREATE TABLE guestbook ( id INT(11) NOT NULL AUTO_INCREMENT, title VARCHAR(300) NULL DEFAULT NULL, contents LONGTEXT NULL DEFAULT NULL, writer VARCHAR(50) NULL DEFAULT NULL, wdate DATETIME NULL DEFAULT NULL, PRIMARY KEY (id) ); -
데이터 삽입
insert into guestbook(title, contents, writer, wdate) values (‘제목1’, ‘내용1’, ‘홍길동1’, now()); insert into guestbook(title, contents, writer, wdate) values (‘제목2’, ‘내용2’, ‘홍길동2’, now()); insert into guestbook(title, contents, writer, wdate) values (‘제목3’, ‘내용3’, ‘홍길동3’, now()); insert into guestbook(title, contents, writer, wdate) values (‘제목4’, ‘내용4’, ‘홍길동4’, now()); insert into guestbook(title, contents, writer, wdate) values (‘제목5’, ‘내용5’, ‘홍길동5’, now());
여기까지하면 테스트할 mariadb 세팅은 얼추 끝난다
pymysql 설치, python에서 mariadb에 이것저것 해보기
#mysqlcon.py
import pymysql
conn = pymysql.connect(host='localhost',user='user01',password='1234',db='mydb',port=5306)
curs= conn.cursor()
sql = 'SELECT * FROM guestbook'
curs.execute(sql)
rows = curs.fetchall()
for row in rows:
print (type(row),row)
print('한개만 가져오기------')
curs.execute(sql)
row = curs.fetchone()
print(row)
#Dict 타입으로 가져오기
curs = conn.cursor(pymysql.cursors.DictCursor)
sql = "SELECT * FROM guestbook"
curs.execute(sql)
rows = curs.fetchall()
for row in rows:
print(row)
#insert example
sql = """
insert into guestbook(title, contents, writer, wdate)
values(%s,%s,%s,now())
"""
curs.execute(sql,('제목임','내용임','작성자임'))
conn.commit()
#update example
sql = """
update guestbook
set title = '제목을 수정합니다'
where id=1
"""
curs.execute(sql)
conn.commit()
#delete example
sql="delete from guestbook where id=%s"
curs.execute(sql,1)
conn.commit()
python mysqlcon1.py 를 통해 스크립트를 실행보자~ 코드를 바꿔가며 이것저것 테스트 해보고 DB를 확인해보자
Comments