どなたか教えて下さい。

RedhatLinux6.2J に PostgreSQL7.0.3をインストールしようとしています。
ソースファイルのコンパイルとインストールは正常に終了したつもりです。
postgres用ユーザーの環境変数も設定したつもりです。

しかし、postgres用ユーザーでinitdbを実行したところ、

Creating template database in /usr/local/pgsql/data/base/template1
ERROR: Error:unknown type 'oidvector'.
ERROR: Error:unknown type 'oidvector'.
 syntax error 12: parse errorinitdb:could not create templatedatebase

というエラーメッセージが出てしまいます。
template1というデータベースが作成できなかった、ということは何となく
わかるのですが、エラーの原因が何かさっぱり分かりません。
どうぞ、教えて下さい。お願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

たぶんはずしていると思うのですが・・・



1./usr/local/pgsql以下がpostgresの所有になっていない

2.RedhatLinux6.2Jに元々PostgreSQLがデフォルトでインストールされていて、template1が存在するのにさらに作ろうとしてエラーになっている。

initdbを起動するときにフルパスで指定せずに起動するなら、環境変数の設定はあっていると思います。
思い切って/usr/local/pgsql以下をすべて削除して、再度やり直してみてはいかがでしょう?
    • good
    • 0
この回答へのお礼

さっそくご回答を頂いて大変に有難うございました。

調べてみたら、どうもPostgreSQLがLedhatのRPMから既に
インストール済みだったようです。
RPMからインストールされた方をアンインストールするか、
そのまま使うか考えてみようと思います。

本当に助かりました。有難うございました。

お礼日時:2001/02/18 01:51

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPostgreSQLが起動しない・・・

はじめまして、tanu_2です。
玄箱HGをDebian化し、いろいろと遊んでいます。

PostgreSQLをapt-getでインストールし、Webアプリを動かしていたのですが、昨日より突然、PostgreSQLが動かなくなってしまいました。
原因が分からず、サーバを再起動し、
# /etc/init.d/postgresql start

$ pg_ctl start
などを試してみたのですが、動きません。
念のため、初期化(initdb)も試みたのですが、これも失敗してしまいます。
/var/log/postgresql/postgres/logを覗いてみると、

FATAL: could not write lock file "/var/lib/postgres/data/postmaster.pid": No space

となっており、上記ディレクトリにpostmaster.pid書き込みできないよ、と言われているっぽかったので、パーミッションを変更したりして
みましたが、postgresql startにしろ、pg_ctl startにしろ、それぞれのコマンドで起動すると、強制的にパーミッションが「700」に変更されてしまうようで、結果は同じでした。

どなたか、解決策をご教示願えませんでしょうか?

よろしくお願いします。m(_ _)m

はじめまして、tanu_2です。
玄箱HGをDebian化し、いろいろと遊んでいます。

PostgreSQLをapt-getでインストールし、Webアプリを動かしていたのですが、昨日より突然、PostgreSQLが動かなくなってしまいました。
原因が分からず、サーバを再起動し、
# /etc/init.d/postgresql start

$ pg_ctl start
などを試してみたのですが、動きません。
念のため、初期化(initdb)も試みたのですが、これも失敗してしまいます。
/var/log/postgresql/postgres/logを覗いてみると、

FATAL: could not wri...続きを読む

Aベストアンサー

それ以外にも、以下のようなコマンドを使ってデータベースサーバプログラムの起動が出来ますよね。

postmaster -D /usr/local/pgsql/data

ただ、以下のURLのドキュメント内には、次のような記述があります。

「何を実行するにしても、サーバはPostgreSQLユーザアカウントで起動させなければなりません。 rootであってはいけませんし、他のユーザでもいけません。」

パッケージによるインストールであれば、自動でpostgresユーザが作られているはずだと思うけど。(Debianは使ったことないので、確証はなし。)

su - postgres

上記のコマンドでログインするなり、パスワードを忘れたのならroot権限にてpasswdコマンドから変更するなりした後、もう一度postmasterを起動してみよう!

ちなみに、パーミッション関係のエラーは、「Permission denied」ですよね。

参考URL:http://www.postgresql.jp/document/pg803doc/html/postmaster-start.html

それ以外にも、以下のようなコマンドを使ってデータベースサーバプログラムの起動が出来ますよね。

postmaster -D /usr/local/pgsql/data

ただ、以下のURLのドキュメント内には、次のような記述があります。

「何を実行するにしても、サーバはPostgreSQLユーザアカウントで起動させなければなりません。 rootであってはいけませんし、他のユーザでもいけません。」

パッケージによるインストールであれば、自動でpostgresユーザが作られているはずだと思うけど。(Debianは使ったことないので、確証は...続きを読む

QPOSTGRESのデータの格納場所はどこでしょうか?

RedHat7.2/PostgreSQL7.2/という環境で、サーバーがクラッシュしてしまい、データを他のサーバに移し変えないといけなくなりました。そこで、PostgreSQLを再インストールしないとデータベースが使えない状況となりました。

データベースを再インストールするのは良いとして、どこかに格納されているはずのデータベースの内容を取り出し、復帰させたいのですが、方法はありますか?大変困っております。よろしくお願いします。

Aベストアンサー

No.1の追加です。
データの移設でよかったと思います。
または、データを読み込むときに、「iオプション」でディレクトリを指定して、元のファイルを読み込んでもよかったと思います。

Qサーバに接続できません・・・

環境はxp、apache2、php5、Postgresql8.2です。

ただ今PHPとPostgresqlの勉強をしています。

Pgadmin3で
postgresサーバに接続しようとすると
次のようエラーが出て
接続することが出来ません。

「サーバに接続できませんでした
サーバはホスト"000.0.0.1"で稼働していますか?
また、ポート5432でTCP/IP接続を受け付けていますか?」

そのため、postgresをアンインストールして
インストールし直したところ
接続できるようになったのですが
新しいデータベースを作ろうとしたところ
また同じエラーが出て接続できなくなってしまいました。

ご教示して頂けたら幸いです。

Aベストアンサー

1台のPCを、サーバ&クライアントにするのですね?
PostgreSQLのサービスは、動いているのですね?
もし、動いていないなら、PostgreSQLのインストールフォルダの\data配下に、
pg_hba.conf
postgresql.conf
に、IPアドレスを指定している場所があるので、「127.0.0.1」以外になっていないか確認してください。
この二つのファイルは、pgAdminIIIで、メニューバーの「ファイル」から編集できます。

pgAdminIIIだけが繋がらないなら、サーバ名を選択した状態で、メニューバーの「編集」→「プロパティ」で、「アドレス」が「localhost」か「127.0.0.1」以外になっていないでしょうか?

QPostgreSQL のバージョン変えるとどうなる

PostgreSQL のバージョンアップを検討しています。
Version 9.1.4
Version 8.3.19

Version 8.3.1と比べると機能・性能・セキュリティなどが良くなっているのですか?
phpからの操作の仕方や挙動が変わるとかあるのでしょうか。
Version 8.3.19 の方がよいですしょうか。

Aベストアンサー

8.3.1 からのアップグレードという事ですよね。
簡単に言うと、8.3.19 へのバージョンアップはバグフィックスのみ、9.1.4 へのバージョンアップは大幅な機能追加・性能改善を含みます。

■ 8.3.19 への移行
・バグやセキュリティの改善のみでアプリケーションの動作への影響は無し。
・機能・性能的な変化も無し。
・移行作業は楽。今までのデータディレクトリがそのまま使える。
 http://www.postgresql.jp/document/8.3/html/install-upgrading.html

■ 9.1.3 への移行
・大幅な機能追加・性能改善がされている。(詳細は最後の方のリンク先を参照)
・デフォルトの動作が変わっている部分もある。
 → ただし、設定によって8.3系と同じ動作にする事は可能。
  http://www.postgresql.jp/document/9.1/html/release-9-1.html#AEN107104
・移行作業では基本的にデータのダンプ・リストアを行う必要がある。
 http://www.postgresql.jp/document/9.1/html/upgrading.html
 → ただし、pg_upgrade というツールを使えば少し時間が短縮できる。
  http://lets.postgresql.jp/documents/technical/contrib/pg_upgrade
  http://www.postgresql.jp/document/9.1/html/pgupgrade.html


偶然ですが、私が関わっているシステムも先日8.3系から9.1系にアップグレードしました。
移行作業でデータがきれいになった影響もありますが、目に見えて速くなりましたよ。


■ 参考

PostgreSQL 8.4 の新機能
http://lets.postgresql.jp/documents/technical/8.4/

PostgreSQL 9.0 の新機能
http://lets.postgresql.jp/documents/technical/9.0/1

PostgreSQL 9.1 の新機能
http://lets.postgresql.jp/documents/technical/9.1/1

8.3.1 からのアップグレードという事ですよね。
簡単に言うと、8.3.19 へのバージョンアップはバグフィックスのみ、9.1.4 へのバージョンアップは大幅な機能追加・性能改善を含みます。

■ 8.3.19 への移行
・バグやセキュリティの改善のみでアプリケーションの動作への影響は無し。
・機能・性能的な変化も無し。
・移行作業は楽。今までのデータディレクトリがそのまま使える。
 http://www.postgresql.jp/document/8.3/html/install-upgrading.html

■ 9.1.3 への移行
・大幅な機能追加・性能改善がされている...続きを読む

QSJISのDBは作れますか?

下記バージョンでSJISでDBを作ることは可能でしょうか?

CREATE DATABASE sjis WITH ENCODING 'SJIS'
ってやったらエラーになりました。

PostgreSQL 8.1.4 又は
PostgreSQL 8.0.4

Aベストアンサー

PostgreSQLデータベースに使用できる日本語文字コードは
 EUC-JP
 UTF-8
だけです。
SJISを使いたい場合は
クライアントエンコーディングにSJISを指定します。

21.2.3. サーバ・クライアント間の自動文字セット変換
http://www.postgresql.jp/document/pg814doc/html/multibyte.html

Q複数の条件での絞り込み検索の仕方

PostgreSQLで複数の条件での絞り込み検索をしたいのです。

テーブルには
発売日、商品名、入荷日
があります。
例えば
発売日が2007年5月1日から5月5日で、商品名に「○○」もしくは「××」もしくは「△△」が含まれており、入荷日が一番新しいもの
という条件で検索したいのです。

発売日だけの絞込みならBetweenですし、商品名だけならor、入荷日の最新だったらmaxを使えば個別には検索できるのですが、これをまとめて一行でやるにはどうしたらよいのかわかりません。
それぞれでandでつなげてみましたが、orの条件がうまく反映されず、一個目の○○だけが検索に引っかかってる状態です。
××や△△もひっかかるようにするにはどう記述したらよいのでしょうか。

Aベストアンサー

データ件数がどのくらいあるのかは分かりませんが、ユニークなキーもなく、likeの任意一致をorでつなぐという方法は、性能を出せませんよ?

select *
from t1
where 入荷日 in(
select max(入荷日)
from t1
where 発売日 between '2007-05-01' and '2007-05-05'
and (商品名 like '%○○%' or 商品名 like '%××%' or 商品名 like '%△△%')
)
and 発売日 between '2007-05-01' and '2007-05-05'
and (商品名 like '%○○%' or 商品名 like '%××%' or 商品名 like '%△△%')

Qdate型でのbetweenについて教えてください。

皆様、新年明けましておめでとうございます。

早速ですが、date型でのbetweenについて教えてください。

SQL文
SELECT * FROM test WHERE date between date '2007-12-01' and date '2007-12-31'

を発行すると、2007-12-31のレコードがあるのに該当しません・・・

試しにSQL文を
SELECT * FROM test WHERE date between date '2007-12-01 00:00:00' and date '2007-12-31 23:59:59'
としても2007-12-31のレコードは検索されません・・・
SQL文を
SELECT * FROM test WHERE date between date '2007-12-01' and date '2008-01-01'
にすると2007-12-31が該当するのですが、
SELECT * FROM test WHERE date between date '2007-12-01' and date '2007-12-31'
では2007-12-31のレコードは該当しないものでしょうか??

select * from test where num between 10 and 100
とした場合では、num が 10 ~ 100 のものが問い合わされますよね??
date型になるとこうならないのでしょうか??

よろしくお願いします。

皆様、新年明けましておめでとうございます。

早速ですが、date型でのbetweenについて教えてください。

SQL文
SELECT * FROM test WHERE date between date '2007-12-01' and date '2007-12-31'

を発行すると、2007-12-31のレコードがあるのに該当しません・・・

試しにSQL文を
SELECT * FROM test WHERE date between date '2007-12-01 00:00:00' and date '2007-12-31 23:59:59'
としても2007-12-31のレコードは検索されません・・・
SQL文を
SELECT * FROM test WHERE date between date...続きを読む

Aベストアンサー

No.1です。
列の属性をtimestampにして実行してみました。

Welcome to psql 8.2.0, the PostgreSQL interactive terminal.
farm=# create table testtbl6 (hoge timestamp);
CREATE TABLE
farm=# insert into testtbl6 values('2007-12-31');
INSERT 0 1
farm=# select * from testtbl6;
hoge
---------------------
2007-12-31 00:00:00
(1 row)

farm=# select * from testtbl6 where hoge between '2007-01-01' and '2007-12-31';
hoge
---------------------
2007-12-31 00:00:00
(1 row)

farm=# select * from testtbl6 where hoge between date '2007-01-01' and date '2007-12-31';
hoge
---------------------
2007-12-31 00:00:00
(1 row)

●時間だけを多少進めたデータを追加してみました

farm=# insert into testtbl6 values('2007-12-31 01:00:00');
INSERT 0 1
farm=# select * from testtbl6;
hoge
---------------------
2007-12-31 00:00:00
2007-12-31 01:00:00
(2 rows)

farm=# select * from testtbl6 where hoge between '2007-01-01' and '2007-12-31';
hoge
---------------------
2007-12-31 00:00:00
(1 row)

farm=# select * from testtbl6 where hoge between date '2007-01-01' and date '200
7-12-31';
hoge
---------------------
2007-12-31 00:00:00
(1 row)

よって、あなたのDBに登録してあるデータは、2007-12-31と午前0時を少し回っているデータが登録されているため、
検索でヒットしないのではないのでしょうか?

No.1です。
列の属性をtimestampにして実行してみました。

Welcome to psql 8.2.0, the PostgreSQL interactive terminal.
farm=# create table testtbl6 (hoge timestamp);
CREATE TABLE
farm=# insert into testtbl6 values('2007-12-31');
INSERT 0 1
farm=# select * from testtbl6;
hoge
---------------------
2007-12-31 00:00:00
(1 row)

farm=# select * from testtbl6 where hoge between '2007-01-01' and '2007-12-31';
hoge
---------------------
2007-12-31 ...続きを読む

Qpasswordが入れられません・・・・

コマンドプロントにてDBへ接続するために「psql postgre」と入れたのですが

Password :

となるのですが、どのキーをたたいても入力することができません。エンターキーを押すと

psql: FATAL: password authentication failed for user "postgre"

と出るか

paql: fe_sendauth: no password supplied

と出てしまい何もできません。パスワードはコマンドプロントで入力できないのでしょうか?

Aベストアンサー

パスワードが表示されていないだけで、入力されているんですよ。

だから、
psql: FATAL: password authentication failed for user "postgre"
アクセス権が無い(パスワードが違ってる)
paql: fe_sendauth: no password supplied
パスワードが入力されていない(Enterを押しただけ)
というエラーが返ってきています。

表示されませんから、正確に入力してみましょう。

QPostgreSQLのtimestamp型で時間(分)を抽出したい

PostgreSQLのあるテーブルで「開始時刻」と「終了時刻」というフィールドがあり、timestamp with timezone(例:2008-07-31 07:00:00+09)でデータを持っています。

例えば、日付に関係なく13:00から15:00までのデータを抽出したい場合、SQLのWHERE句にはどのように記述すればよろしいのでしょうか?

Aベストアンサー

それなら早く言ってよ(笑)
to_char(開始時刻, 'HH24:MI') >= '13:30'
AND to_char(終了時刻, 'HH24:MI') <= '15:40'

http://www.postgresql.jp/document/pg734doc/user/functions-formatting.html

参考URLの文章の中に関連事項のリンクもあったはず。

Qbatファイルの結果をテキストに吐き出すには?

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.txt
--------------------------------------
C:\>net user "test user1" ps123456 /domain
--------------------------------------

DOS画面(吐き出したいもの)
--------------------------------------
C:\>net user "test user1" ps123456 /domain
コマンドは正常に終了しました。

C:\>net user "test user2" ps456789 /domain
コマンドは正常に終了しました。

C:\>henkou.bat 1>c:\henkou結果.txt
--------------------------------------

以下のようなWindowsユーザーのパスワード変更batの結果(正常に出来たかどうか?)をCドライブに吐き出したいのですが、どうbatファイルを書き換えればよいでしょうか?
(とりあえず以下の内容でbatをたたいたのですが、うまく結果が出ません。。。)

henkou.bat
--------------------------------------
net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain
henkou.bat > c:\henkou結果.txt
pause
--------------------------------------

吐き出されたhenkou結果.t...続きを読む

Aベストアンサー

henkou.bat
--------------------------------------
@ECHO OFF

IF NOT EXIST %temp%\Redirect.txt GOTO REDIREXEC

@ECHO ON

net user "test user1" ps123456 /domain
net user "test user2" ps456789 /domain

@ECHO OFF

GOTO END

:REDIREXEC

ECHO REDIRECT > %temp%\Redirect.txt

CALL TEST.BAT > c:\henkou結果.txt

DEL %temp%\Redirect.txt

PAUSE

:END
--------------------------------------

こんな感じでどうでしょうか。


人気Q&Aランキング