Postgresql
postgresql 安裝:initdb 數據目錄不為空?
我正在嘗試創建 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