1. 程式人生 > >centos 7安裝 postgres 10 (轉)

centos 7安裝 postgres 10 (轉)

在mysql被收購之後,大家發現了另一款開源的資料庫,postgresql,雖然centos自帶版本9.2也可以用,但是最近的幾次升級支援了更多更新的內容,比如,PostgreSQL有一個MySQL無法比擬的優勢,那就是PostGIS,PostGIS可以完美支援空間資料儲存和空間分析;從PostgreSQL9.3起就內建了JSON資料型別,而9.4又開始支援JSONB,這標誌著PostgreSQL實際上已經是一個關係型資料庫和NoSQL資料庫的結合體了、雖然postgresql是一個關係型資料庫,但是近幾次更新PostgreSQL的NoSQL效能有益到甚至超過了MongoDB。

系統自帶版本9.2略低,近幾次升級功能較多,本次安裝最新版本。

一、更新源

地址:https://yum.postgresql.org/repopackages.php


這裡我選擇centos7-x86 64 右鍵 複製連結。

在centos系統中執行

[plain]  view plain  copy
  1. yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm -y    

二、安裝postgresql

先檢視postgresql源

[plain]  view plain  copy
  1. yum list | grep postgresql  

我們需要安裝的是這兩個。postgresql10-contrib postgresql10-server

[plain]  view plain  copy
  1. yum install postgresql10-contrib postgresql10-server -y  

三、初始化資料庫

Postgresql安裝目錄是/usr/pgsql-10,而Postgresql的資料目錄是/var/lib/pgsql/版本號/data目錄

在這裡,如果在裝系統開始分配var空間足夠大則可以繼續,如果分配var空間不夠,我們需要更改資料目錄,在這裡,我們假設var空間足夠大。直接開始初始化。

[plain]  view plain  copy
  1. /usr/pgsql-10/bin/postgresql-10-setup initdb  

顯示這個代表初始化成功

四、啟動資料庫並設定開機啟動

[plain]  view plain  copy
  1. sudo systemctl start postgresql-10  
  2. sudo systemctl enable postgresql-10.service  

五、登入postgresql並設定密碼

postgresql在安裝時預設新增使用者postgres

輸入

[plain]  view plain  copy
  1. su - postgres  
  2. psql  

進入資料庫

樣子長這樣


我們來設定密碼:

[plain]  view plain  copy
  1. ALTER USER postgres WITH PASSWORD '密碼';  

退出:\q

備註其他:列出所有庫\l  列出所有使用者\du 列出庫下所有表\d


六、預設情況下postgresql是不用密碼不支援遠端登入的。我們需要修改配置檔案

[plain]  view plain  copy
  1. vi /var/lib/pgsql/10/data/pg_hba.conf  

原本長成這樣


我們需要改成


儲存退出

我們改遠端訪問

[plain]  view plain  copy
  1. vi /var/lib/pgsql/10/data/postgresql.conf  

往下拉我們會看到


需要改成


重啟postgresql

[plain]  view plain  copy
  1. systemctl restart postgresql-10  

七、登入postgresql

postgresql在安裝時預設新增使用者postgres

輸入

[plain]  view plain  copy
  1. su - postgres  
  2. psql  
進入資料庫


此時已經可以進行驗證密碼

八、遠端連線資料庫

我們用pgadmin進行驗證連線


輸入相關資訊


此時我們可以看到相關資料了



九、我們測試建立資料庫及建立使用者

因為postgres屬於superuser,我們需要建立部分低許可權使用者

建立資料庫

[plain]  view plain  copy
  1. CREATE DATABASE testdb;  

建立使用者

[plain]  view plain  copy
  1. CREATE USER testuser CREATEDB LOGIN PASSWORD 'testpassword';  

將testdb所有許可權賦給使用者testuser

[plain]  view plain  copy
  1. GRANT ALL ON DATABASE testdb TO testuser;  

樣子:


檢視現有資料庫及使用者


十、刪除資料庫及測試使用者

刪除資料庫

[plain]  view plain  copy
  1. drop database testdb;  

刪除使用者

[plain]  view plain  copy
  1. drop role testuser;  

驗證:



至此,我們已經完成基礎的東西了。。至於其他,自己發揮吧。