Python_3


https://docs.google.com/document/d/1zO2vk8f0-Op7LczR-O_Buhv3b029H-Ivjrasch6QfrM/edit


maria DB 연동하기

[ 마리아 DB 연동 ]


1.

http://dev.mysql.com/downloads/connector/python/


에서 마리아  DB  connector 설치


다른 방법

http://downloads.mysql.com/archives/c-python/


select version : 1.2.2

select platform : Platform Independent를 선택하고 zip파일을 다운받아 압축을 푼다


이어서 cmd 창을 열고, 압축을 푼 폴더에서


> python setup.py install


하면 Python 폴더의 C:\Python34\Lib\site-packages에

mysql 폴더가 생기고 파일이 복사된다.

이 때  C:\Python34와  C:\Python34\Scripts 는 반드시 path 설정이 돼 있어야 한다



2. 마리아 DB 다운로드


https://downloads.mariadb.org/mariadb/5.5.50/

에서 운영체제에 맞는 버전 선택해서 다운로드 설치


- Maria DB 설치 화면






- mysql 클라이언트 실행

>mysql -u root -p


- database 목록보기

>show databases;


- database 만들기

>create database db이름 ;


- database use

>use 데이터 베이스 이름 ;


- table list

>show tables;


- table 구조 보기

>desc 테이블 이름 ;


-  계정 생성방법

>create user '사용자이름'@'접속ip' identified by '비밀번호' ;

- 권한 부여

>grant all privileges on db이름.* to '사용자이름'@'접속ip' ;

- 권한 설정 새로 고침

>flush privileges;



CREATE TABLE member(num INTEGER  AUTO_INCREMENT   PRIMARY KEY,

name TEXT, addr TEXT );


- 데이터 입력

INSERT INTO member (name,addr) VALUES( '김구라' , '노량진');


- 데이터 수정

UPDATE member SET name=?,addr=? WHERE num=? ;


- 데이터 삭제

DELETE FROM member WHERE num=?;


- 데이터 SELECT


SELECT num,name,addr FROM member;






#-*- coding: utf-8 -*-

import mysql.connector
from mysql.connector import errorcode

# DB 접속 정보를 dict type 으로 준비한다.

config={
        "user":"gura",  # 계정
        "password":"1234", # 비밀번호
        "host":"127.0.0.1", # 접속 아이피
        "database":"acorn", # database 명
        "port":3306 # port 번호 
    }

try:
    # Maria DB 연결객체 
    conn=mysql.connector.connect(**config) # config dict type 매칭
    
    # member 테이블에 저장할 정보라고 가정
    name1 = u"원숭이"
    addr1 = u"상도동"
    
    #실행할 sql 문 준비하기
    sql="INSERT INTO member (name,addr) values(%s, %s)"
    
    # %s 에 바인딩할 내용을 tuple type 에 담는다.
    sql_arg=(name1, addr1)
    
    # db 에 select, insert, update, delete 작업을 할 객체
    cursor=conn.cursor()
    
    # 수행하기
    cursor.execute(sql, sql_arg)
    
    conn.commit() # DB 에 실제 반영하기
    print "member 테이블에 회원정보를 저장 했습니다."
except mysql.connector.Error as err:
    # 예외가 발생했을때 수행할 작업
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print "아이디 혹은 비밀번호가 틀려요"
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print "DB 오류"
    else:
        print "기타 오류"
    # DB 작업 취소 
    conn.rollback()
else:
    print "정상 수행 했습니다."
finally:
    # cursor 닫기 
    cursor.close()
    # 연결 객체 닫기 
    conn.close()
#-*- coding: utf-8 -*-

import mysql.connector
from mysql.connector import errorcode

# DB 접속 정보를 dict type 으로 준비한다.

config={
        "user":"gura",  # 계정
        "password":"1234", # 비밀번호
        "host":"127.0.0.1", # 접속 아이피
        "database":"acorn", # database 명
        "port":3306 # port 번호 
    }

try:
    # Maria DB 연결객체 
    conn=mysql.connector.connect(**config) # config dict type 매칭
    
    #삭제할 회원의 번호라고 가정
    num1=5
   
    #실행할 sql 문 준비하기
    sql="DELETE FROM member WHERE num=%s"
    
    # %s 에 바인딩할 내용을 tuple type 에 담는다.
    sql_arg=(num1,)
    
    # db 에 select, insert, update, delete 작업을 할 객체
    cursor=conn.cursor()
    
    # 수행하기
    cursor.execute(sql, sql_arg)
    # 영향을 받은 row 의 갯수 읽어오기 
    row_count=cursor.rowcount
    print row_count
    conn.commit() # DB 에 실제 반영하기
    
    if row_count > 0:
        print "member 테이블에 회원정보를 삭제 했습니다."
    else: 
        print num1, "번 회원정보는 존재 하지 않습니다."
        
except mysql.connector.Error as err:
    # 예외가 발생했을때 수행할 작업
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print "아이디 혹은 비밀번호가 틀려요"
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        print "DB 오류"
    else:
        print "기타 오류"
    # DB 작업 취소 
    conn.rollback()
else:
    print "정상 수행 했습니다."
finally:
    # cursor 닫기 
    cursor.close()
    # 연결 객체 닫기 
    conn.close()

2017/11/25 - [세상을 바꿀 힘/Tech] - Python_2

2017/11/18 - [세상을 바꿀 힘/Tech] - Python_1



'세상을 바꿀 힘 > Tech' 카테고리의 다른 글

FPGA  (6) 2017.12.18
Python_2  (5) 2017.11.25
FPGA  (2) 2017.11.23
Python_1  (5) 2017.11.18

+ Recent posts