2013-09-24 80 views
1

我想在Centos5 64位機器上使用postgis和Postgis。在Centos 5上用postgis啓動postgres時遇到麻煩

我開始使用以下命令爲根:

> yum install postgresql 

> yum install postgresql-server 

> yum install postgresql-contrib 

他們似乎成功了,但服務不會與「服務的PostgreSQL啓動」啓動。我試圖找出它是否是一個版本問題,就像我需要說'service postgresql-8.4 start'或其他東西,而不是(我已經遇到了一個不同的Linux操作系統)。確定安裝了哪些postgres:

> yum list postgres* 

並且在版本列中有一些說8.1的postgres項目。

然後我讀的地方,我需要8.2或更高PostGIS的工作,所以我試圖卸載8.1版本,用下面的命令:

> rpm -e postgresql-server 
> rpm -e postgresql-contrib 
> rpm -e postgresql 

我沒有得到任何錯誤,所以我想它工作。

然後,我安裝了postgis的8.4版本postgis,按照本頁上的說明http://postgis.net/install/託管,但避免了關於更改yum存儲庫文件(第2步)的部分,因爲在我的情況下,我似乎不想排除postgres *從更新。

所以我第一次做了wget

> wget http://yum.postgresql.org/9.1/redhat/rhel-5-x86_64/pgdg-centos91-9.1-4.noarch.rpm 

(忽略步驟2和3,以及因爲我已經rpm'ed的PostgreSQL服務器) 接下來,我做了

> yum install postgis21 

由於postgis2 (如說明中所建議的)不可用。我還安裝了84服務器。

> yum install postgresql84-server 

現在看來我已經安裝了8.1和8.4兩個部分。

> yum list posgres* 

Installed Packages 
postgresql-libs.i386      8.1.23-6.el5_8    installed 
postgresql-libs.x86_64     8.1.23-6.el5_8    installed 
postgresql84.x86_64      8.4.13-1.el5_8    installed 
postgresql84-libs.x86_64     8.4.13-1.el5_8    installed 
postgresql84-server.x86_64    8.4.13-1.el5_8    installed 
postgresql92-libs.x86_64     9.2.0-og1      installed 
Available Packages 
postgresql.x86_64      8.1.23-6.el5_8    base  
postgresql-contrib.x86_64    8.1.23-6.el5_8    base  
postgresql-devel.i386     8.1.23-6.el5_8    base  
postgresql-devel.x86_64     8.1.23-6.el5_8    base  
postgresql-docs.x86_64     8.1.23-6.el5_8    base  
postgresql-jdbc.x86_64     8.1.407-1jpp.4    base  
postgresql-odbc.x86_64     08.01.0200-3.1    base  
postgresql-odbc64.x86_64     09.00.0200-1.el5    base  
postgresql-pl.x86_64      8.1.23-6.el5_8    base  
postgresql-python.x86_64     8.1.23-6.el5_8    base  
postgresql-server.x86_64     8.1.23-6.el5_8    base  
postgresql-tcl.x86_64     8.1.23-6.el5_8    base  
postgresql-test.x86_64     8.1.23-6.el5_8    base  
postgresql84-contrib.x86_64    8.4.13-1.el5_8    base  
postgresql84-devel.i386     8.4.13-1.el5_8    base  
postgresql84-devel.x86_64    8.4.13-1.el5_8    base  
postgresql84-docs.x86_64     8.4.13-1.el5_8    base  
postgresql84-libs.i386     8.4.13-1.el5_8    base  
postgresql84-plperl.x86_64    8.4.13-1.el5_8    base  
postgresql84-plpython.x86_64    8.4.13-1.el5_8    base  
postgresql84-pltcl.x86_64    8.4.13-1.el5_8    base  
postgresql84-python.x86_64    8.4.13-1.el5_8    base  
postgresql84-tcl.x86_64     8.4.13-1.el5_8    base  
postgresql84-test.x86_64     8.4.13-1.el5_8    base  
postgresql92.x86_64      9.2.0-og1      opengeo 
postgresql92-contrib.x86_64    9.2.0-og1      opengeo 
postgresql92-devel.x86_64    9.2.0-og1      opengeo 
postgresql92-docs.x86_64     9.2.0-og1      opengeo 
postgresql92-plperl.x86_64    9.2.0-og1      opengeo 
postgresql92-plpython.x86_64    9.2.0-og1      opengeo 
postgresql92-pltcl.x86_64    9.2.0-og1      opengeo 
postgresql92-server.x86_64    9.2.0-og1      opengeo 

而我被困在循環如下所示:

> service postgresql start 

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize 
the cluster first. [FAILED] 

> service postgresql initdb 

Initializing database: mkdir: cannot create directory `/var/lib/pgsql/data/pg 
_log': File exists 

> rm -rf /var/lib/pgsql/data/pg_log 

(好吧它消除它)

> service postgresql initdb 

的答覆說「初始化數據庫:」與沒有什麼在冒號後面

> service postgresql start 

/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize 
the cluster first. [FAILED] 

> service postgresql initdb 

Initializing database: mkdir: cannot create directory `/var/lib/pgsql/data/pg 
_log': File exists 

等等......

可能有這些不同的版本有問題嗎?任何其他想法?

謝謝。

+0

8.1服務器被卸載,'postgresql-libs'只是一組庫。 'rpm -e postgresql-libs'可能會擺脫它。不過,它可能與'initdb'失敗無關。 –

回答

1

當您安裝RedHat(通過centos)postgresql時,它期望擁有基地/var/lib/pgsql/data文件夾的所有權,因爲RHEL不希望您安裝更新的postgresql主要版本。PGD​​BG提供的rpms允許存在多個版本並將數據安裝到/var/lib/psql/VERSION/data中,其中版本根據您所安裝的版本進行更改。

如果你想堅持使用RHEL提供的postgresql,你可能需要先吹掉整個/var/lib/pgsql/data目錄,然後再嘗試使用initdb。當然,如果您有現有的數據庫數據,請不要這樣做!

我建議你通過PGDBG嘗試9.3版本的postgresql。