切換語言為:簡體

Linux環境中安裝PostgreSQL詳細步驟

  • 爱糖宝
  • 2024-09-19
  • 2042
  • 0
  • 0

前置條件

yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake

建立使用者及使用者組

groupadd postgres_group
useradd -d /home/postgres -g postgres_group postgres

編譯安裝

tar -zxvf postgres-16-1.tar.gz
./configure --prefix=/opt/pgsql/postgresql --without-icu
make && make install

啟動資料庫

# 建立資料存放目錄
mkdir -p /home/postgres/pgdata
# 初始化資料庫
cd /opt/pgsql/postgres/bin
./initdb -D /home/postgres/pgdata/
# 啟動資料庫
cd /opt/pgsql/postgres/bin
./pg_ctl -D /home/postgres/pgdata/ -l logfile start
# 停止資料庫
# cd /opt/pgsql/postgres/bin
# ./pg_ctl -D /home/postgres/pgdata/ stop
# 登入資料庫
cd /opt/pgsql/postgres/bin
./psql -h localhost -p 5432 postgres

開放遠端訪問

cd /home/postgres/pgdata
# 備份pg服務配置檔案
cp postgresql.conf postgresql.conf_init
# 編輯pg服務配置檔案
vi postgresql.conf #將該配置檔案中的listen_address的值從localhost修改爲*,並將開頭的#刪除 
# 備份pg遠端訪問配置檔案
cp pg_hba.conf pg_hba.conf_init
# 編輯pg遠端訪問配置檔案
vi pg_hba.conf
# IPv4 local connections:
host    all             all             0.0.0.0/0            trust #加入這一行
host    all             all             127.0.0.1/32            trust

# 停止pg服務
cd /opt/pgsql/postgres/bin
./pg_ctl -D /home/postgres/pgdata/ stop
./pg_ctl -D /home/postgres/pgdata/ -l logfile start

建立角色

# 先使用postgres使用者登入資料庫,建立一個可以登入及建立資料庫的角色test001
create role test001 LOGIN CREATEDB;
# 修改角色test001的密碼為test1234
alter user test001 password 'test1234';
# 建立一個名稱為test_001資料庫並設定歸屬者為test001
create database test_001 owner test001
# 使用test001登入test_001資料庫
cd /opt/pgsql/postgres/bin
./psql -h192.168.198.129 -p5432 -U test001 -dtest_001
# 建立一個名稱為monitor_schema的模式
create schema monitor_schema

建立使用者

其實使用者和角色都是角色,只是使用者是具有登入許可權的角色。

# 建立一個使用者normal_user1
create user normal_user1;
# 為使用者normal_user1設定密碼
alter user normal_user1 password 'test1234';
# 建立一個具有建立資料庫許可權的角色
create role createdb_role CREATEDB;
# 將角色createdb_role的許可權賦予使用者normal_user1
grant createdb_role to normal_user1;
# 移除normal_user1建立庫的許可權
revoke createdb_role from normal_user1;

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.