Symfoware

Symfowareについての考察blog

H2 Database EngineにPythonから接続する(psycopg使用)

PostgresqlのJDBCドライバを使用して、H2 Database Engineに接続してみました。
H2 Database Engineに、PostgresqlのJDBCドライバでJavaで接続する


ということは、Postgresqlに接続するためのライブラリがあれば
どんな言語からも接続できるはず。

ということで、Pythonからpsycopgを使用して接続してみました。
http://initd.org/psycopg/install/




psycopgのインストール



Ubuntuにpsycopgをインストールします。
まず、ビルドに必要となるライブラリをインストール。


$ sudo apt-get install python-dev libpq-dev




easy_installを使ってインストールするので、setuptoolsをインストール


$ sudo apt-get install python-setuptools




psycopg2をインストール


$ sudo easy_install psycopg2




これでpsycopgのインストールは完了です。







saのパスワード設定



H2 Database Engineに接続するとき、ユーザー「sa」、パスワード空白が
初期値で設定されています。

psycopg2で接続するとき、パスワードに空白を指定すると

Traceback (most recent call last):
    File "sample.py", line 5, in <module>
    con = psycopg2.connect(database="test", user="sa", host = "192.168.1.4", port = 5435, password="")
psycopg2.OperationalError: fe_sendauth: no password supplied


こんな感じで、空白は指定できないというエラーが発生します。


そのため、Webの管理画面からパスワードの設定を行いました。

実行するクエリは以下のとおり。


SET PASSWORD 'Passw0rd'



05_001_20111206214437.png



これで接続しているユーザー(この場合はsaでログインしているのでsa)にパスワードが設定されます。







Pythonのサンプルプログラム



サンプルプログラムはこんな感じになりました。


# -*- coding:utf-8 -*-
import psycopg2
import psycopg2.extras

con = psycopg2.connect(database="test", user="sa", host = "192.168.1.4", port = 5435, password="Passw0rd")
cur = con.cursor(cursor_factory=psycopg2.extras.DictCursor)
cur.execute("SELECT * FROM test")

rec = cur.fetchone()
print rec['name']

cur.close()
con.close()





実行してみると、ちゃんとJavaから登録したデータが得られます。


$ python sample.py
日本語テスト



関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2011/12/06(火) 21:45:00|
  2. H2 Database Engine
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<H2 Database EngineにMySQLとのLINKED TABLEを作成する | ホーム | H2 Database Engineに、PostgresqlのJDBCドライバでJavaで接続する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/852-715a4744
この記事にトラックバックする(FC2ブログユーザー)