Raspberry PiのPython3環境でMySQLを使いたので調べたところ、PyMySQLとmysqlclientというモジュールが使えるらしい。ちなみに、MySQL用のPythonモジュールとしては他にmysql-connector-pythonとMySQLdbもあるが、前者はRaspberry Piで使えないし、後者はPython2用のモジュール。ここではmysqlclientを使ってみる。
OSのバージョンはRaspbian Jessie。
Python3のバージョンは3.4。
MySQLのバージョンは5.5。
mysqlclientのインストールにはlibmysqlclient-devが必要なのであらかじめインストールしておく。
pipでmysqlclientをインストール。
インストールされたmysqlclientのバージョンは1.3.10。
あらかじめテーブルを作成しておく。
mysqlclientの使い方はSQlite3のときとそれほど変わらないので、SQlite3から移行するなら意外と簡単にできるかも。気をつけるところはプレースホルダが「?」でなく「%s」。以下は作成したテーブルにレコードを追加するコード。
結果を確認。
環境
OSのバージョンはRaspbian Jessie。
Python3のバージョンは3.4。
MySQLのバージョンは5.5。
mysqlclientのインストール
mysqlclientのインストールにはlibmysqlclient-devが必要なのであらかじめインストールしておく。
pipでmysqlclientをインストール。
インストールされたmysqlclientのバージョンは1.3.10。
サンプルコード
あらかじめテーブルを作成しておく。
mysqlclientの使い方はSQlite3のときとそれほど変わらないので、SQlite3から移行するなら意外と簡単にできるかも。気をつけるところはプレースホルダが「?」でなく「%s」。以下は作成したテーブルにレコードを追加するコード。
from datetime import datetime
# なぜかimportするときはの名前はMySQLdb
import MySQLdb
#MySQLのユーザ名、パスワード、MySQLが動作しているホスト、データベース名を設定
conn = MySQLdb.connect(
user='user_name',
passwd='password',
host='localhost',
db='database_name'
)
cur = conn.cursor()
d = datetime.now().strftime('%Y-%m-%d')
name = 'name'
# プレースホルダは%s
sql = "INSERT INTO sample VALUES(1, %s, %s)"
cur.execute(sql, (d, name,))
conn.commit()
conn.close()
結果を確認。
0 件のコメント:
コメントを投稿