centos7下安裝pgsql10.3
前言
在centos7上面安裝pgsql-10.3,在網上找了很多的文章,試了好久才成功.那就總結下,安裝的過程吧,避免下次浪費時間.
下載pgsql-10.3
系統版本centos7
下載pgsql-10.3:https://www.postgresql.org/ftp/source/v10.3/
上傳tar包到服務器
$ scp postgresql-10.3.tar.gz root@192.168.56.189:~
The authenticity of host '192.168.56.189 (192.168.56.189)' can't be established.
ECDSA key fingerprint is SHA256:q2lore2LaeBsH4j3jmEVg0VYbfudDDR4LkmF/rt+Zp0.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/liz/.ssh/known_hosts).
root@192.168.56.189's password:
postgresql-10.3.tar.gz 100% 25MB 37.5MB/s 00:00
安裝
解壓
# tar -xzvf postgresql-10.3.tar.gz
安裝基本的工具
yum install -y vim lrzsz tree wget gcc gcc-c++ readline-devel zlib-devel
編譯
進入到剛剛解壓的文件夾,執行命令
./configure --prefix=/usr/local/pgsql
后面的/usr/local/pgsql
表示的是要編譯安裝的具體位置,可以自己定義
安裝
make && make install
然后等待安裝........
直到出現PostgreSQL installation complete.
表示安裝成功了
創建目錄 data、log
# mkdir /usr/local/pgsql/data
# mkdir /usr/local/pgsql/log
加入系統環境變量
vim /etc/profile
在最后寫入
PGHOME=/usr/local/pgsql
export PGHOME
PGDATA=/usr/local/pgsql/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
注意:/usr/local/pgsql
需要修改為自己的安裝目錄
使配置文件生效
# source /etc/profile
增加用戶 postgres 並賦權
# adduser postgres
# chown -R postgres:root /usr/local/pgsql/
修改密碼(在root)
# passwd postgres
更改用戶 postgres 的密碼 。
新的 密碼:
無效的密碼: 密碼未通過字典檢查 - 過於簡單化/系統化
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
初始化數據庫
注意:需要在postgres
用戶下初始化
切換用戶 postgres
# su postgres
然后初始化數據庫
# /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/
編輯配置文件
# vim /usr/local/ppgsql/data/postgresql.conf
修改
listen_addresses = '*'
port = 5432
同樣修改
# vim /usr/local/pgsql/data/pg_hba.conf
在最后面添加
說明:
TYPE:pg的連接方式,local:本地unix套接字,host:tcp/ip連接
DATABASE:指定數據庫
USER:指定數據庫用戶
ADDRESS:ip地址,可以定義某台主機或某個網段,32代表檢查整個ip地址,相當於固定的ip,24代表只檢查前三位,最后一 位是0~255之間的任何一個
METHOD:認證方式,常用的有ident,md5,password,trust,reject。
md5是常用的密碼認證方式。
password是以明文密碼傳送給數據庫,建議不要在生產環境中使用。
trust是只要知道數據庫用戶名就能登錄,建議不要在生產環境中使用。
reject是拒絕認證。
啟動服務
$ pg_ctl start -l /usr/local/pgsql/log/pg_server.log
could not change directory to "/root/postgresql-10.3": 權限不夠
waiting for server to start.... done
server started
啟動,停止,重啟
$ pg_ctl start\stop\restart -D /usr/local/pgsql/log/pg_server.log
需要切換用戶 postgres
,使用root
用戶 su postgres
切換到postgres
用戶時,執行上面的啟動命令會提示權限不夠,使用下面的這個命令,就可以了
# su - postgres
查看版本
# psql -V
psql (PostgreSQL) 10.3
設置開機啟動
將pgsql安裝包中的linux文件復制到/etc/init.d或者/etc/rc.d
[root@10 postgresql-10.3]# cp contrib/start-scripts/linux /etc/init.d/pgsql
根據安裝路徑修改pgsql文件中的配置項
## EDIT FROM HERE
# Installation prefix (安裝路徑)
prefix=/usr/local/pgsql
# Data directory (data路徑)
PGDATA="/usr/local/pgsql/data"
修改pgsql文件權限
# chmod +x /etc/init.d/pgsql
開機執行pgsql文件
# chkconfig --add pgsql
關掉防火牆
$ systemctl stop firewalld
$ systemctl disable firewalld