centos使用Yum安裝postgresql 13


rpm源安裝

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

安裝數據庫

yum install -y postgresql13-server

數據庫安裝完成后,會自動創建一個linux用戶 postgres

新建數據庫數據存放目錄

mkdir -p /home/pgsql/data
chown -R postgres.postgres /home/pgsql

初始化postgresql數據庫

# 初始化數據 -D指定初始化創建的數據庫的文件路徑
# su postgres
bash-4.2$ /usr/pgsql-13/bin/initdb -D /home/pgsql/data
屬於此數據庫系統的文件宿主為用戶 "postgres".
此用戶也必須為服務器進程的宿主.
數據庫簇將使用本地化語言 "zh_CN.UTF-8"進行初始化.
默認的數據庫編碼已經相應的設置為 "UTF8".
initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
缺省的文本搜索配置將會被設置到"simple"

禁止為數據頁生成校驗和.

修復已存在目錄 /home/pgsql/data 的權限 ... 成功
正在創建子目錄 ... 成功
選擇動態共享內存實現 ......posix
選擇默認最大聯接數 (max_connections) ... 100
選擇默認共享緩沖區大小 (shared_buffers) ... 128MB
selecting default time zone ... Asia/Shanghai
創建配置文件 ... 成功
正在運行自舉腳本 ...成功
正在執行自舉后初始化 ...成功
同步數據到磁盤...成功

initdb: 警告: 為本地連接啟用"trust"身份驗證
你可以通過編輯 pg_hba.conf 更改或你下次
執行 initdb 時使用 -A或者--auth-local和--auth-host選項.

成功。您現在可以用下面的命令開啟數據庫服務器:

    /usr/pgsql-13/bin/pg_ctl -D /home/pgsql/data -l 日志文件 start

切換回root用戶,配置啟動項

su
vim /usr/lib/systemd/system/postgresql-13.service

# 修改一下啟動數據存放目錄
[Unit]
Description=PostgreSQL 13 database server
Documentation=https://www.postgresql.org/docs/13/static/
After=syslog.target
After=network.target

[Service]
Type=notify

User=postgres
Group=postgres

# Note: avoid inserting whitespace in these Environment= lines, or you may
# break postgresql-setup.

# Location of database directory
# Environment=PGDATA=/var/lib/pgsql/13/data/
Environment=PGDATA=/home/pgsql/data/

# Where to send early-startup messages from the server (before the logging
# options of postgresql.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog

# Disable OOM kill on the postmaster
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0

ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA}
ExecStart=/usr/pgsql-13/bin/postmaster -D ${PGDATA}
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
 
# Do not set any timeout value, so that systemd will not kill postmaster
# during crash recovery.
TimeoutSec=0

# 0 is the same as infinity, but "infinity" needs systemd 229
TimeoutStartSec=0

TimeoutStopSec=1h

[Install]
WantedBy=multi-user.target

啟動

systemctl daemon-reload
systemctl start postgresql-13.service
# 開機啟動
systemctl enable postgresql-13.service

登錄

postgresql默認要切換到postgres用戶才能登陸數據庫

# 切換用戶
su postgres
# 登錄數據庫
psql -U postgres
# 添加密碼
Alter USER postgres WITH PASSWORD 'postgres';
ALTER ROLE        //出現這個才算成功

# su postgres
bash-4.2$ psql -U postgres
psql (13.5)
輸入 "help" 來獲取幫助信息.

postgres=# Alter USER postgres WITH PASSWORD 'postgres';
ALTER ROLE
postgres=# exit
bash-4.2$ exit
exit

修改遠程鏈接配置文件參數

vim /home/pgsql/data/postgresql.conf

# 修改為 *
listen_addresses = '*'

vim /home/pgsql/data/pg_hba.conf
host    all     all      0.0.0.0/0      trust  # 新增這一行,否則連接時會報錯:Error connecting to the server:致命錯誤:沒有用於主機“…”,用戶“…”,數據庫“…”,SSL關閉的pg_hba.conf記錄:

# 重啟數據庫生效
systemctl restart postgresql-13.service


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM