裝包
sudo yum install postgresql-server postgresql-contrib
說明:
- 這種方式直接明瞭,其他方法也可以參考官網的安裝介紹。centos是紅帽系的。
- postgresql主要有以下幾個包:
- postgresql-client:libraries and client binaries
- postgresql-server:core database server
- postgresql-contrib:additional supplied modules
- postgresql-devel:libraries and headers for C language development
- pgadmin3:pgAdmin III graphical administration utility
- postgresql-client:libraries and client binaries
- 作為伺服器,只用裝postgresql-server和postgresql-contrib
初始化
sudo postgresql-setup initdb
說明:
- 根據紅帽系的策略,PostgreSQL安裝完成後,相應的服務不會自動啟動,資料庫也不會自動初始化,初始化操作需要手動進行。
修改pg_hba.conf
sudo vim /var/lib/pgsql/data/pg_hba.conf
插入一行:host all all 0.0.0.0/0 md5
說明:
- 配置檔案目錄可能帶版本號,比如pgsql/9.5/data這種,自己找一下。
- hba means host-based authentication
- 預設情況下,PostgreSQL不允許password authentication,不允許非localhost的主機,不允許遠端登入。(所謂預設情況就是PostgreSQL剛裝好時候conf檔案裡寫的情況。)
- 插入的那一行,格式為CONNECTIONTYPE DATABASE USER ADDRESS METHDO
- 欄位含義、各欄位可選值、配置方式直接參考conf檔案的註釋。
- 提一句,ADDRESS那裡自己配一下,不要太放開了,md5即用密碼認證身份登入。
修改postgresql.conf
sudo vim /var/lib/pgsql/data/postgresql.conf
改一行:listen_addresses = '*'
說明:
- postgresql.conf檔案中涉及諸如:最大連線數、監聽地址,監聽埠、日誌、記憶體、硬碟等等各種設定。檔案註釋詳細,自己按需修改,用不到的先不做了解。
- 監聽地址原值為localhost,這時只能本機訪問,改成*或0.0.0.0或逗號分隔字串都行。
- 很多值是change requires restart,需要重啟postgresql-9.5服務(要帶版本號)。
重啟postgresql服務
systemctl restart postgresql-9.5.service
或者sudo service postgresql-9.5 restart
說明:
- 重啟服務使之前修改的配置生效。
注意事項
- 安裝目錄/var/lib/pgsql及目錄下檔案或資料夾的可讀、可寫、可操作統統只開放給使用者postgres
- 檔案不能操作時,請
sudo su - postgres
切換到postgres使用者進行操作,千萬不要改動預設的檔案許可權,否則會導致postgresql服務無法啟動。 - 在終端輸入psql命令時,常常會遇到下面這個錯。這個錯有兩個解決方式:
- 重啟postgresql服務。
刪掉/usr/local/var/postgres/postmaster.pid檔案。
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
- postgres的預設密碼為空,上面弄好以後記得改密碼。
sudo su - postgres
psql
ALTER USER postgres PASSWORD '123456';