2011-12-17 102 views
0

的PostgreSQL 8.4無法啓動在Ubuntu 10.10PostgreSQL 8.4無法在Ubuntu 10.10上啓動Bug?

sudo /etc/init.d/postgresql start 
    * Starting PostgreSQL 8.4 database server                                      
    * Error: could not exec /usr/lib/postgresql/8.4/bin/pg_ctl /usr/lib/postgresql/8.4/bin/pg_ctl start -D /var/lib/postgresql/8.4/main -l /var/log/postgresql/postgresql-8.4-main.log -s -o -c config_file="/etc/postgresql/8.4/main/postgresql.conf" : 

運行ldd/usr/lib/postgresql/8.4/bin/pg_ctl

ldd /usr/lib/postgresql/8.4/bin/pg_ctl 
    linux-gate.so.1 => (0xb77e4000) 
    libpq.so.5 => /usr/lib/libpq.so.5 (0xb77a2000) 
    libc.so.6 => /lib/libc.so.6 (0xb7645000) 
    libssl.so.0.9.8 => /lib/libssl.so.0.9.8 (0xb75fb000) 
    libcrypto.so.0.9.8 => /lib/libcrypto.so.0.9.8 (0xb74ac000) 
    libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0xb73fd000) 
    libcom_err.so.2 => /lib/libcom_err.so.2 (0xb73f9000) 
    libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0xb73ca000) 
    libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7398000) 
    libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0xb7351000) 
    libpthread.so.0 => /lib/libpthread.so.0 (0xb7337000) 
    /lib/ld-linux.so.2 (0xb77e5000) 
    libdl.so.2 => /lib/libdl.so.2 (0xb7333000) 
    libz.so.1 => /lib/libz.so.1 (0xb731e000) 
    libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0xb72fa000) 
    libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0xb72f1000) 
    libkeyutils.so.1 => /lib/libkeyutils.so.1 (0xb72ed000) 
    libresolv.so.2 => /lib/libresolv.so.2 (0xb72d9000) 
    liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0xb72cc000) 
    libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb72b4000) 
    libgnutls.so.26 => /usr/lib/libgnutls.so.26 (0xb7218000) 
    libtasn1.so.3 => /usr/lib/libtasn1.so.3 (0xb7207000) 
    libgcrypt.so.11 => /lib/libgcrypt.so.11 (0xb7193000) 
    libgpg-error.so.0 => /lib/libgpg-error.so.0 (0xb718e000) 

我已經檢查的權限,並給予適當的根權限,我試圖運行PostgreSQL爲根。

+0

'/ usr/lib/postgresql/8.4/bin/pg_ctl'是否可執行? – Todd 2011-12-17 15:57:05

+0

是'-rwxr-XR-X 1根root' – 2011-12-17 15:59:08

+0

是否Postgres的用戶具有完全的讀和'在/ var/lib中/ PostgreSQL的/ 8.4/main'寫權限? – 2011-12-17 16:28:01

回答

1

的PostgreSQL拒絕以root身份運行。這是因爲後端錯誤,以及用不可信語言編寫的函數中的錯誤,不能用於對整個系統執行任意操作。 PostgreSQL必須以相對有限的用戶身份運行,通常postgres用戶和啓動腳本通常會強制執行此操作。

權限授予postgres用戶,而不是根源。那麼一切都應該正常工作。