CentOS7下PostgreSQL安裝過程
裝包
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-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';