Postgresql

postgresql 安裝:initdb 數據目錄不為空?

  • April 17, 2019

我正在嘗試創建 postgresql 數據庫。

當我安裝 PostgreSQL 時,我給出了這個命令:

sudo yum install postgresql postgresql-server

後來我修改了配置文件:

sudo vim /var/lib/pgsql/data/pg_hba.conf

並修改為

local   all         all                               trust
host    all         all         127.0.0.1/32          trust
host    all         all         ::1/128               trust
host    all         all         0.0.0.0/0             md5

當我嘗試啟動 postgresql 服務時:

sudo service postgresql initdb

> Data directory is not empty!                               [FAILED]

sudo chkconfig postgresql on

sudo service postgresql start

Starting postgresql service:                               [  OK  ]

是什麼導致了這些錯誤,我該如何解決?

Initdb 應該只執行一次。它將創建保存配置文件和(通常)實際數據庫的目錄。您顯然已經這樣做了;否則不會有任何 pg_hba.conf 供您編輯。

postgresql initdb因此,除非您進行完全重新安裝,否則不要再次執行。

這裡

如果您完全擦除並重新安裝 Postgres DB,則在執行時initdb如下:

service postgresql-9.2 initdb -E 'UTF8' --pgdata="/foo/bar/"

您可能會遇到此服務錯誤:

數據目錄不為空!

$$ FAILED $$

修復它(這是核選項——所有數據庫數據都被擦除!)

在 Amazon Linux (2014-x) 上:

rm -rf /var/lib/pgsql9/data

在 CentOS (6.x) 上

rm -rf /var/lib/pgsql/9.2/data

現在initdb再次嘗試該命令,這次它應該可以工作:

service postgresql-9.2 initdb

引用自:https://serverfault.com/questions/505924