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- 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- yum list | grep postgresql
我們需要安裝的是這兩個。postgresql10-contrib postgresql10-server
[plain] view plain copy- yum install postgresql10-contrib postgresql10-server -y
三、初始化資料庫
Postgresql安裝目錄是/usr/pgsql-10,而Postgresql的資料目錄是/var/lib/pgsql/版本號/data目錄
在這裡,如果在裝系統開始分配var空間足夠大則可以繼續,如果分配var空間不夠,我們需要更改資料目錄,在這裡,我們假設var空間足夠大。直接開始初始化。
[plain] view plain copy- /usr/pgsql-10/bin/postgresql-10-setup initdb
顯示這個代表初始化成功
四、啟動資料庫並設定開機啟動
[plain] view plain copy- sudo systemctl start postgresql-10
- sudo systemctl enable postgresql-10.service
五、登入postgresql並設定密碼
postgresql在安裝時預設新增使用者postgres
輸入
[plain] view plain copy- su - postgres
- psql
進入資料庫
樣子長這樣
我們來設定密碼:
[plain] view plain copy- ALTER USER postgres WITH PASSWORD '密碼';
退出:\q
備註其他:列出所有庫\l 列出所有使用者\du 列出庫下所有表\d
六、預設情況下postgresql是不用密碼不支援遠端登入的。我們需要修改配置檔案
[plain] view plain copy- vi /var/lib/pgsql/10/data/pg_hba.conf
原本長成這樣
我們需要改成
儲存退出
我們改遠端訪問
[plain] view plain copy- vi /var/lib/pgsql/10/data/postgresql.conf
往下拉我們會看到
需要改成
重啟postgresql
[plain] view plain copy- systemctl restart postgresql-10
七、登入postgresql
postgresql在安裝時預設新增使用者postgres
輸入
[plain] view plain copy- su - postgres
- psql
此時已經可以進行驗證密碼
八、遠端連線資料庫
我們用pgadmin進行驗證連線
輸入相關資訊
此時我們可以看到相關資料了
九、我們測試建立資料庫及建立使用者
因為postgres屬於superuser,我們需要建立部分低許可權使用者
建立資料庫
[plain] view plain copy- CREATE DATABASE testdb;
建立使用者
[plain] view plain copy- CREATE USER testuser CREATEDB LOGIN PASSWORD 'testpassword';
將testdb所有許可權賦給使用者testuser
[plain] view plain copy- GRANT ALL ON DATABASE testdb TO testuser;
樣子:
檢視現有資料庫及使用者
十、刪除資料庫及測試使用者
刪除資料庫
[plain] view plain copy- drop database testdb;
刪除使用者
[plain] view plain copy- drop role testuser;
驗證:
至此,我們已經完成基礎的東西了。。至於其他,自己發揮吧。