▼スレッド
│
└◇1045:データベースのユーザ作成 [ダイ] 04/02 23:14
├◇1046:Re:データベースのユーザ作成 [りう] 04/03
│└◇1050:Re[2]:データベースのユーザ作成 [ダイ] 04/03
│ └◇1052:Re[3]:データベースのユーザ作成 [りう] 04/03
│ └◇1053:Re[4]:データベースのユーザ作成 [ダイ] 04/03
│ └◇1054:Re[5]:データベースのユーザ作成 [りう] 04/03
│ └◇1062:Re[6]:データベースのユーザ作成 [ダイ] 04/04 <
└◇1047:Re:データベースのユーザ作成 [MSだす。] 04/03
└◇1051:Re[2]:データベースのユーザ作成 [ダイ] 04/03
└◇1055:Re[3]:データベースのユーザ作成 [MSだす。] 04/03
└◇1061:Re[4]:データベースのユーザ作成 [ダイ] 04/04
Win XP Pro SP1スレッド一覧
Cygwin 1.13
postgresql 7.3.2
/usr/local/pgsql/bin/createuser nobody
で以下のようにエラーがでます。
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
createuser: creation of user "nobody" failed
因みにpg.dllは、C:\WINNTにコピペしました。
何がだめなのでしょうか?
エラーメッセージに書かれているとおり、スレッド一覧
UNIXドメインソケットで接続出来ないからです。
オプション「-h localhost」を付けて実行して下さい。
りうさん、アドバイスありがとうございます。スレッド一覧
/usr/local/pgsql/bin/createuser -h localhost nobody
で以下のようにエラーがでます。
psql: could not connect to server: Connection refused
Is the server running on host localhost and accepting
TCP/IP connections on port 5432?
createuser: creation of user "nobody" failed
根本的に何かが足りないような気がしますので、いろいろ考えてみます。
postmasterが正しく起動しているのであれば、スレッド一覧
エラーメッセージに書かれているとおり、
TCPでlocalhostに接続出来ないのが原因です。
まず、postgresql.confに
tcpip_socket = true
は存在しますか。ないなら追加して下さい。
もし大丈夫であれば、pg_hba.confの設定で
localhostからの接続が受け付けられるようになっていますか?
もしそうでないなら、
host all 127.0.0.1 255.255.255.255 trust
を追加して下さい。
----
Cygwin提供のパッケージを利用して、/usr/doc/Cygwin
以下にあるPostgreSQLのドキュメントの通りに行えば、
「UNIXドメインソケットで接続できない」という問題
以外は何の苦労もなく利用できるはずなのですが…。
さっそくのお返事ありがとうございます。スレッド一覧
ところで、postgresql.confとpg_hba.confが
/usr/local/pgsql/bin
に見当たらないのですが、そのかわりに
/usr/local/pgsql/share
にpg_hba.conf.sampleとpostgresql.conf.sampleがあります。これを編集して、
/usr/local/pgsql/bin
に.sampleを外して保存してみたのですが、だめでした。
それから、Windowsでpostgresというアカウントを作成して、cygwinでmkpasswdを行ったのですが、postgresqlを操作するときに、ユーザの変更を行う必要は無いのでしょうか。常にadministratorでのコマンド操作をしていますが。こういうところが疑問のままなので、エラーがでると原因を絞れずに困ってしまいます。また、
/usr/local/pgsql/data
を作成したのですが、dataディレクトリにアクセスできません。Windowsにpostgresでログオンするとアクセスできるのですが、なぜ?
昨日、Cygwinの本買ったのにほとんど役に立たないし。
助けてください。
・まず最初に、initdb は実行されましたか?スレッド一覧
・initdb を実行したなら、PostgreSQL のデータが格納される
ディレクトリが作成されているはずです(それがどこかは、
initdb の引数で指定したはずです)。pg_hba.conf と
postgresql.conf はその下にあります。
本文中から察するに、/usr/local/pgsql/data でしょうか。
・/usr/local/pgsql/data にアクセスできない件については、
/usr/local/pgsql/data のパーミッションを調べてみて下さい。
多分、所有者 postgres で、700 になっていると思います。
Windows には UNIX の root のように「全てのファイルを読み書き
可能」という都合のよいユーザはいませんから、このような
ディレクトリには postgres ユーザしかアクセスできません。
・「postgresqlを操作するときに」という意味がよくわかりませんが、
psql などを使う場合は、明示的にユーザを指定すれば OK です
(「psql -U postgres -h localhost DB名」など)。
・繰り返しますが、Cygwin 提供のパッケージを利用して、
/usr/doc/Cygwin 以下にあるPostgreSQLのドキュメントの通りに
行えば、問題なく動きます。なぜソースからのインストールに
拘るのか、よく分からないのですが。
りうさん、お返事ありがとうございました。スレッド一覧
パーミッションを
chmod g+w data
として、initdbを行ったところOKでした。
これからpostgresのユーザ作成、データベース作成が出来るか、試してみます。
そもそもpostmasterやipc-daemonは起動しているスレッド一覧
のでしょうか?
$ ps -a
などとして、現在走っているプロセスに
それらがあるかどうか確かめてください。
もし走ってなければ、参考になさっているページ
を良く見て、バックグラウンドで起動してから
createuserしてください。
MSだすさんアドバイスありがとうございます。スレッド一覧
ipc-daemonは、参考にしているところにあるため、
/usr/local/bin/ipc-daemon &
として、起動しています。これの返り値が、
[1]3116 や [2]3544
というようにいろいろなるのですが、これはこういうものでいいのでしょうか。
ipcsを行うと、
----------Shared Memory Segments---------
shmid key bytes nattch status
----------Semaphore Arrays----------
semid nsems key
----------Message Queues----------
msqid used-bytes messages
と言うようにでてくるのですが、値はでてきません。
これがおかしいのでしょうか。
また、postmasterの起動についてですが、
/usr/local/pgsql/bin/postmaster &
を実行したところ、
[2]2432
が返ってきたのですが、次に
FATAL: File /usr/local/pgsql/data/PG_VERSION is missing. This is not a valid data directory.
とでてきます。
やっぱり何かおかしいですね。
ps -aのコマンドの結果は、
bash,ipc-daemon,ps
が返ってきました。
エラーの頻出で、パニックになりそうですが、いろいろ勉強してみます。
ipc-daemon, postmaster起動などサービスを提供スレッド一覧
する作業はユーザ"postgres"なければいけません。
"postgres"でwindowsにログオンして作業を
していますか?
ps -aの結果にpostmasterが見えてなければ
postmasterが走ってないのでしょう。
まず、"postgres"ユーザでpostmasterの起動などを
してみてください。
MSだすさん、お返事ありがとうございます。スレッド一覧
postgresでログオンをしてみるのですが、administratorのときと勝手が違って、まだよく分かりません。
カレントディレクトリが違うのでしょうか?
adminのときと同じディレクトリ指定ではだめなんでしょうか?とにかくいじり回してみます。
それから、adminでも
/usr/local/pgsql/data
のパーミッションを変更して、initdbを実行したらうまく行ったような気がしますが、これではひょっとしてだめなのかな?これから検証してみます。