2017/11/12

PythonからMariaDBにアクセスしてみよう

PythonでMariaDBにアクセスをやってみます。

前回からずいぶん時間がかかってしましましたが、
私的なもろもろでずいぶん時間がとられてしまってました。
今回は予告通りPythonからMariaDBにアクセスしてみます。

今回も調べつつハマってしまった部分があったので、ちゃんと書いておこうと思います。

では、以下本編です。

目次

目標

PythonからMariaDBにアクセスしてデータを取り出してみよう!

設定

PythonからMariaDBにアクセスには、複数のパッケージのインストールが必要でした。

Linaxパッケージインストール


python-develインストール

yum -y install python-devel

gccインストール

yum -y install gcc

mariadb-devel.x86_64インストール

yum -y install mariadb-devel.x86_64

Pythonパッケージインストール


とりあえずアップグレード

pip install --upgrade setuptools

MySQL-Pythonインストール

pip install MySQL-Python

で、結局何にはまってしまったのか?

失敗したときには、
python-develインストール
⇒ pipのアップグレード
⇒ MySQL-Pythonインストール
とすすめたのですが、上手くいきませんでした。orz

こちらのサイトhttp://vayacico.hatenablog.com/entry/2017/04/24/003443
の記載「yum install mysql-community-devel.x86_64」を見て、
「Mariadbならそれ用があるんじゃない?」って思って、
パッケージ一覧からmariaで始まる始まるものがあったので、
mariadb-devel.x86_64をインストール。

またpip install MySQL-Python事態で失敗するもしていて、
こちらhttps://qiita.com/takahashi-kazuki/items/994a7f9741c93b80dc24
を参考にgccをインストール

これで動かせる状況まで持って行けました。
ありがとうございました。

サンプルコード

SQLTest-Select-Python.cgi

#!/usr/bin/python
# -*- coding: utf-8 -*-

import cgi

import MySQLdb

html = '''Content-Type: text/plain

'''
print (html)


connection = MySQLdb.connect(
  host='192.168.11.14',
  db="TESTDB",
  user="TESTUSER",
  passwd="TESTPASS",
  charset="utf8"
  )

cursor = connection.cursor()
# SQL
cursor.execute("SET NAMES utf8")

cursor.execute("insert into TESTTABLE (name) values ('XXX')")
connection.commit()

cursor.execute("select * from TESTTABLE")
result = cursor.fetchall()

for row in result:
      print ("{},{}".format(row[0],row[1].encode("utf8")))

cursor.close()
connection.close()

print ("OK")

実行すると

SQLTest-Select-Python.cgiにアクセスすると、
1,2,3,とカウントアップしながらデータベースに追加されて、
データ全件が表示されます。

終わりに

今回はPythonからMariaDBにアクセスしてみました。
これでフロント、サーバ側処理、データベースへの接続それぞれが準備できました。
次はフロントからデータベースまで使って何か作ってみたいところ・・・。
出版物だと入り口としてToDoアプリとかよく見ますし、
そういうのを作ってみようと思います。

ご参考になれば幸いです。
ご利用は自己責任で!

0 件のコメント:

コメントを投稿

AWSに手を出してフレームワークも使ってみたが・・・。

サイトを作り直しました。 AWS上に構築した Content created by AXY を作り直しました。 具体的にはbottle.pyを使ったpythonで構築したサイトからPHP7を使用したサイトに再構築しています。 特別何か問題点があったというわけで...