CentOS7下PostgreSQL安裝過程

CopperDong發表於2018-04-03

裝包

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';

相關文章