PostgreSQL導入のメモ、以前

体力をガツンと奪われる感じの蒸し暑さがいきなり昨日今日。最寄の職安にいったら、満員御礼で番号札を渡されての順番待ち12人で驚いた。ハロープラザというハローワークの縮小版のようなところなので端末の数も少ないししかたないかも知れない。で、今日は週末にハローワークインターネット版で検索して見つけておいたところに紹介状を書いてもらって履歴書などを送ってみた。
予想外の混雑だったので、帰りつくまで昼飯が我慢できず、駅近くのマクドに入った。100円モノを3品。うううむ、味とか栄養とかはともかく、この値段はいいな。喉が乾いて自動販売機で缶モノを買っても100円以上するのだ。マクドで飲み物だけ100円で涼んで休めるんだから全然OKですよ。最近、マクドって混んでるな、と思ってたけど、これがあるから子供からお年寄りまでにぎわってんだなぁ。
で、帰ってから昨日あたりの続き。
PostgreSQL の導入に検索しまくり。SELECT の中に WHERE 以下に条件式を書けば指定フィールドで検索ができるというのがわかって、ちょっと見えてきた、かも。
これって PostgreSQLうんぬんじゃなくSQL文の基本の基本らしい。PostgreSQL の解説じゃなくて SQL の解説をまず漁るべきだったかもしれん。
入力されたものに応じて条件式の文字列を作って問い合わせ窓口に放りこめばいい。
てことで、ちょっとPostgreSQLメモ。
FreeBSD-4.11stable の port で
postgresql-7.4.6
php5-pgsql-5.0.3_1
mod_php5-5.0.3_1,1
をインストール。
postgresqlインストール後、
$ su -l pgsql -c initdb
これでどうやらスーパーユーザーpgsqlでデータベースができるようだ。というか、PostgreSQLが使えるようになる、のかな。
[23:19:34]
次に、データベースのスーパーユーザーで、データベースの新規ユーザーを登録して
# su - pgsql
$ createuser new
(このデータベースの新規ユーザーは普段ログインしているアカウントのユーザー)
でもって作ったユーザーで(loginするなり suするなりして)データベースを作る
$ createdb --encoding=EUC_JP books
スーパーユーザーだけでもいいかも知れないけど、スーパーユーザーだと取り返しのつかない出来事が起こるし、いちいちsuするのも面倒だし、普段ログインしているアカウントで気楽に。
以上の作業で
$ psql books
とやってデータベースを操作できるようになる。(データベース名とテーブル名が同じってのはどうなのかしらん)
そしたらば、データベース内にテーブルを作成
↓psql のプロンプト
books=> CREATE TABLE books (id serial primary key,
title text
.....
次にデータベースのスーパーユーザーで、psql を使って csv ファイルからテーブルに一気にコピーする。
books=# copy books(id,title....
from ’/tmp/books.csv’
デフォルトではフィールド区切りがタブらしいので、コンマをタブに置換してある。
id はデータベースの管理なのでデータ側には通し番号のidは不要。
…この、ユーザーとデータベースとテーブルの関係が、実はまだよく把握できてない。普段ログインするのはまた別になってるのが面倒くさい。
以上でインストールと最初の設定は終わり。httpd.confのそれっぽいところを書き換えてapacheを再起動すればCGIで使えるようになる。
後でもう少し具体的に書いておかないと…これじゃ大雑把すぎて備忘録になってないなぁ。
ちなみに、zaurus 版の postgresqlインストールに関してはこちらの通りにやれば問題なし。
ブラウザを通じて httpd からデータベースをいじるためにデータベースに apache のユーザーを登録して、アクセス許可をしておく必要がある。
$ createuser www
$psql -c ’GRANT ALL ON books TO www’ books
$psql -c ’GRANT ALL ON books_id_seq TO www’ books
phpの検索部分
名前が司馬遼太郎のデータを引っ張り出す。
$que = "SELECT * FROM books WHERE name ~ ’司馬遼太郎’";
$con = pg_connect("dbname=books");
$res = pg_query($con, $que);
$cnt = pg_num_rows($res);
for($i=0; $i < $cnt; $i++){
....
}
perl の方が使い慣れていていいんだけど、どうやら世の中の趨勢は、WEBでは php+データベース っぽい。こういうものって、長いものに巻かれて大樹に寄った方がなにかとラクなんでちょっと php で四苦八苦しておこうかしらん。
[22:08:11]
んで、本にネットに、パラパラ見ながら、php のスクリプトを書いてみた。…って、入力フォームもデータ送受信も仕組みは同じで、使う言葉も違うことは違うけどperlと似たところも多い。
なので、「当たらずしも遠からじ」でテキトーに書いていって、ブラウザのエラーを見ながら修正というやりかた。インタプリタの手軽なところだ。とりあえずは、なんの機能もない、ただフィールドごとでの検索をするだけのスクリプト。うううむ。postgresql へデータを渡してそれを受けとって、とかやってるのに、気のせいか速いぞ。
| << | 2026/1 | >> | ||||
|---|---|---|---|---|---|---|
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
【最近の20件】
- 20260129 ブログをレスポンシブ対応にリニューアル
- 20260126 ブログのふり返り
- 20260121 小ネタ:ed25519秘密鍵公開鍵とJson serialized canonical
- 20260120 ActivityPubは自作実装しよう!
- 20260117 RFC9421版HTTP Signatureに対応
- 20260111 HTTP Signatureの署名対象文字列
- 20260109 web本棚のActivityPub対応
- 20260106 web本棚のソースコード公開
- 20260104 web本棚
- 20260101 謹賀新年2026
- 20251231 2025年ふりかえり
- 20251213 perlと30年
- 20251210 ActivityPubの投稿削除
- 20251101 日常雑感
- 20251026 テキトーフェッチメール
- 20251014 ActivityPubサーバーで投稿の編集
- 20251008 元WINDOWS10のノパソにlinux mint
- 20251002 GBLシーズン「変わりゆく物語」でACE到達
- 20250925 ブログのアクセス制限
- 20250922 ActivityPubサーバーに引用を実装


