目的
PostgreSQL作為一個全球支持的開源資料庫,擁有超過30年歷史,得益於各種可用的插件,它以健壯性、可伸縮性和性能而聞名。
首先,如果要完成PostgreSQL的安裝與使用,需要通過SSH連接連接到伺服器,您可以通過有關教程進行連接。若是本地伺服器,則進入下一步,打開伺服器的終端。
PostgreSQL安裝
要繼續安裝PostgreSQL,請使用apt包管理器。確保更新緩存:
$ sudo apt update && sudo apt install postgresql postgresql-contrib
使用systemctl start命令確保伺服器正在運行:
sudo systemctl start postgresql.service
驗證安裝
現在你已經完成了Ubuntu上Postgres的安裝,各項服務將自動啟動。作為第一步,通過用psql連接到PostgreSQL資料庫來驗證安裝。
psql是一個命令行工具,用來與PostgreSQL伺服器交互。這將輸出伺服器的版本。
sudo -u postgres psql -c "SELECT version();"
要以postgre用戶的身份登錄PostgreSQL,你可以使用psql。可以按照下面的方式進行:
sudo su – postgres
要使用PostgreSQL,請輸入:
psql
它將授予你對PostgreSQL實例的訪問權。如果要退出,可以使用:
\q
管理用戶和權限
如前所述,PostgreSQL假設其服務中存在的每個用戶也存在於系統中。為了創建一個新的用戶,首先通過adduser把它添加到系統中。
$ sudo adduser tutorial
在下面的例子中,正在創建一個名為 “tutorial “的用戶,沒有指定其他信息。一旦完成,就可以創建PostgreSQL用戶。首先用postgres用戶登錄。
$ sudo -i -u postgres
$ createuser --interactive
創建完用戶後,設置一個密碼,通過超級用戶postgres登錄,並改變你剛剛創建的用戶。
$ psql postgres=# ALTER USER tutorial PASSWORD 'password'; ALTER ROLE;
也可以通過運行該命令為新創建的用戶創建一個資料庫。
$ createdb tutorial
完成後,退出並嘗試用新創建的用戶登錄。
$ sudo -i -u tutorial
啟用對外部客戶的訪問
在某些情況下,可能需要允許外部客戶(例如你的機器)訪問伺服器上的一個或多個資料庫。通常情況下,PostgreSQL不被配置為接受非本地的連接,所以要修改一些配置文件。
第一個要修改的文件是主配置文件,在
/etc/postgresql/10/main/postgresql.conf.
請確保編輯
listen_addresses = 'localhost'
和:
listen_addresses = '*'
通過這種方式,你通知PostgreSQL期望從任何網絡接口進入的連接。
請確保保存你的修改,繼續編輯/etc/postgresql/10/main/pg_hba.conf中管理伺服器訪問規則的文件,添加以下一行。
host tutorial tutorial 0.0.0.0/0 md5
這種修改允許 “tutorial “用戶從任何主機訪問它的資料庫。而它的意思是:
- · local: 來自系統的非網路連接
· host: 任何類型的TCP / IP連接
· hostssl: 僅在SSL協議下的TCP / IP連接
· hostnossl: 不使用SSL協議的TCP / IP連接 - tutorial: 資料庫名稱要允許訪問,用「all」指代所有資料庫
- tutorial: 用户名授予访问权限
- 0.0.0.0/0: IP位址,在您的情況下,您正在授權訪問任何IPv4地址
- md5: 公認的認證方法,其中一些重要的是:
· md5: 密碼身份驗證
· trust: 無條件接受連接
· peer: 使用系統用戶名只連接同名的資料庫
要了解更多信息,請訪問地址 https://www.postgresql.org/docs/9.1/auth-pg-hba-conf.html 或官方PostgreSQL文档。
完成之後,請重新啟動服務以使所有更改生效:
$ sudo systemctl restart postgresql