##python으로 mysql연동하기(윈도우 환경 windows10)

mysql 설치,계정,테이블 만들기

  1. 일단 httpS://downloads.mariadb.com/MariaDB 에서 각 운영체제에 맞는 mariadb를 다운받는다.
    테스트이므로 mariadb사용
    c:\maridb에 압축을 푼다

  2. cmd 창을 관리자권한으로 실행시킨다. 그후 아래명령어입력
    cd /mariadb/bin
    mysql_install_db –-datadir=C:\mariadb\data –-service=mariaDBZip –-port=5306 -–password=1234

    그리고 작업관리자 창에서 서비스탭에서 mariaDBZip 이라는 서비스를 시작

– 여기서부터 본인은 HeidiSql 이라는 프로그램을 사용하여 진행함(cmd도 상관없음)

  1. 루트로 디비 접속 mysql -u root -p –port=5306 Enter your password :1234

  2. 디비 생성
    CREATE DATABASE mydb default CHARACTER SET UTF8;
    SHOW DATABAS # > #은 mysql에서 주석 입니다.

  3. 계정만들고 권한 주기
    CREATE USER ‘user01’ IDENTIFIED BY ‘1234’;
    GRANT ALL PRIVILEGES ON mydb.* TO user01@localhost IDENTIFIED BY ‘1234’;
    EXIT;

  4. 새로운 계정으로 시작하고 4번에서 만든 mydb 사용
    mysql -u user01 -p
    use mydb

  5. 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) );

  6. 데이터 삽입
    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를 확인해보자

heidiSQL을 통해 확인한 DB

heidiSQL을 통해 확인한 DB