ひまつぶし雑記帖

doncha.net制作・発行:KindleやiBooks、楽天kobo、BOOK☆WALKERで読む電子書籍

PostgreSQL導入のメモ、以前

2005/6/13 [17:34:50] (月) 天気

体力をガツンと奪われる感じの蒸し暑さがいきなり昨日今日。最寄の職安にいったら、満員御礼で番号札を渡されての順番待ち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 へデータを渡してそれを受けとって、とかやってるのに、気のせいか速いぞ。

 

»電子書籍制作代行についてはこちら

profile

profile

 
doncha.net
contact:
»運営者
@t2aki@tokoroten.doncha.net

ところてんx5

2024/4/25 00:49

だめだ。PDFをWordで開いたらレイアウトが微妙にくずれて行数が正しくない。かえって間違いのもとだ。

2024/4/24 13:43

pdfをWordで開いてみる手もあるか。空行、1ページの行数とか、pdfのまんまだったら行数表示で問題解決。だけど、実際どうだろ。帰ったら試す

2024/4/24 12:58

空行は目視しか確認方法がない…
windowsで半透明にするフリーソフトを見つけたので、各ページの幅で検知する。
全ページの行数を数えてたんじゃ絶対漏らす。そんな集中力はないわ

検索
<<2024/4>>
 123456
78910111213
14151617181920
21222324252627
282930

リンク

WINDOWS版サウンドノベル
おかえりください PC WINDOWS版サウンドノベル
『おかえりください』体験版