출처1 : https://wingoodharry.wordpress.com/2015/01/05/raspberry-pi-temperature-sensor-web-server-part-2-setting-up-and-writing-to-a-mysql-database/



Mysql-python Tutorials

http://www.tutorialspoint.com/python/python_database_access.htm



라즈베리파이에 MySQL 설치 후 Python과 연동을 위해서는 MySQL-Python 이라는 모듈을 설치해야 한다.


윈도우즈에서는 pip install mysql-python 명령어로 설치하려 했으나 실패했고


easy_install mysql-python 명령어로 설치에 성공하였다. 


허나 라즈베리파이에서 pip과 easy_install 명령어로 실행해 보았으나 실패했으며, 이유는 까먹었다. 


아무튼 나는 아래의 명령어를 통해 라즈베리 파이에 mysql-python 모듈을 설치하였으며,


정상동작하는 것을 확인하였다. 



sudo apt-get install python-mysqldb



위와 같이 명령을 실행 후 pip list 명령을 내려보면



pi@motolies-pi ~ $ pip list

Warning: cannot find svn location for distribute===0.6.24dev-r0

distribute (0.6.24dev-r0)

mcpi (0.1.1)

MySQL-python (1.2.3)

numpy (1.6.2)

picamera (1.10)

pifacecommon (4.1.2)

pifacedigitalio (3.0.4)

pip (7.1.2)

pygame (1.9.1release)

pygobject (3.8.2)

pyserial (2.5)

RPi.GPIO (0.5.11)

setuptools (0.6rc11)

wheel (0.26.0)



위와 같이 설치된 모듈이 나오게 되며 굵은 표시로 된 것이 mysql-python 모듈이다. 


윈도우에 설치된 버전은 1.2.5 버전이었다.



USE TestDB;

CREATE TABLE TestTable(

seq INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

TextData VARCHAR(200) NOT NULL,

LastUpdate DATETIME

);

 

테스트용 테이블을 하나 만들었고,



INSERT INTO TestTable(TextData, LastUpdate) VALUES('test1', NOW());

INSERT INTO TestTable(TextData, LastUpdate) VALUES('test2', NOW());

INSERT INTO TestTable(TextData, LastUpdate) VALUES('test3', NOW());

 

만든 테이블에 샘플 데이터를 넣었으며,



#Test.py

import MySQLdb

 

db = MySQLdb.connect(host="221.148.94.89",user="root",passwd="1234",db="TestDB")

cursor = db.cursor()

 

cursor.execute("select * from TestTable")

 

try:

    results = cursor.fetchall()

    for row in results:

        seq = row[0]

        TextData = row[1]

        LastUpdate = row[2]

        # Now print fetched result

        print "seq=%s, TextData=%s, LastUpdate=%s" %  (seq, TextData, LastUpdate)

except:

    print "Error: unable to fecth data"

 

db.close()



위와 같은 코드를 사용하여 정상적으로 가져올 수 있는지 테스트 하였다. 











































Posted by motolies
,