$ su・pgdb のインストール
# rpm -i postgresql-libs-7.4.7-3.FC2.1.i386.rpm
# rpm -i postgresql-7.4.7-3.FC2.1.i386.rpm
# rpm -i postgresql-server-7.4.7-3.FC2.1.i386.rpm
# su - postgres
postgres$ vi ~/data/postgresql.conf
設定ファイルを書き換えて、TCP/IP ソケットを有効にするpostgres$ vi ~/data/pg_hba.conf
#tcpip_socket = falsetcpip_socket = true
設定ファイルを書き換えて、ローカルユーザを trust にする (ホントは password にしたいけど、テストなので)postgres$ exit
#local all all ident sameuserlocal all all trust
# service postgresql start postgres デーモン (postmaster) を起動
# exit
$ su
# rpm -i mx-2.0.5-3.i386.rpm mx (Misc Extensions: 便利なツール集) をインストール
# rpm -i postgresql-python-7.4.7-3.FC2.1.i386.rpm pgdb をインストール (上記 mx が必須: mx.DateTime を必要とします)
$ psql -U postgres template1 template1 は DB の雛型です。変更はダメです。・pgdb を実行
template1=# CREATE USER testuser ;
template1=# ALTER USER testuser WITH PASSWORD 'password' ;
template1=# CREATE DATABASE testdb ;
template1=# GRANT ALL ON DATABASE testdb TO testuser ;
template1=# \q
$ psql -U postgres template1 -c "SELECT datname,datacl FROM pg_database"
$ psql -U testuser testdbdatname | datacl -----------+----------------------------------------------------------- testdb | {=T/postgres,postgres=C*T*/postgres,testuser=CT/postgres} template1 | {postgres=C*T*/postgres} template0 | {postgres=C*T*/postgres} (3 rows)
testdb=> CREATE TABLE table1 (idx INT, val TEXT) ;
testdb=> \q
注意: python 2.3 からは、最初の 1〜2 行目に多バイトコードの宣言が必要です (リテラルやコメントに漢字を使う場合)
例: # -*- coding: euc_jp # -*- coding: Shift_JIS # -*- coding: UTF-8
$ python <<EOF
idx:1 val:BBB 実行結果
> > > > > > > > > > > > > > > > # -*- coding: euc_jp import pgdb db = pgdb.connect(host='localhost:5432',database='testdb',user='testuser',password='password') cursor = db.cursor() # カーソルの宣言 cursor.execute("INSERT INTO table1 VALUES ('1','AAA')") # INSERT 文を実行 cursor.execute("UPDATE table1 SET val = 'BBB' WHERE idx = '1'") # UPDATE 文を実行 cursor.execute("SELECT * FROM table1") # SELECT 文を実行 while 1: # SELECT の実行結果を全て表示 row = cursor.fetchone() if not row: break print "idx:%s val:%s" % (row[0],row[1]) cursor.execute("DELETE FROM table1 WHERE idx = '1'") # DELETE 文を実行 cursor.close() db.commit() db.close() EOF
$ tar xzf PyGreSQL.tgz
$ cd PyGreSQL-3.8.1 PyGreSQL.tgz を解凍して得られるバージョンは、ダウンロードした時期により異なります。
PyGreSQL-3.8.1$ python setup.py build
PyGreSQL-3.8.1$ su
PyGreSQL-3.8.1# python setup.py install