centos7installan安裝postgresql9.6,解決重音不敏感”排序規則,以及擴展pgcrypto函數

第1步:添加RPM源(通過官網獲取下載地址)

PostgreSQL官網地址:https://yum.postgresql.org/

yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

PS:如果安裝過程出現錯誤,或提示已加載,但是無法提示沒有相關依賴包,則可以先清除yum緩存
清理yum緩存:
yum clean 的參數有headers, packages, metadata, dbcache, plugins, expire-cache, rpmdb, all

yum clean headers  #清理/var/cache/yum的headers清理
yum clean packages #清理/var/cache/yum下的軟件包
yum clean metadata

第2步:安裝PostgreSQL 9.6服務端及相關第三方擴展

相關的安裝的說明:
postgresql96-server 數據庫核心服務端
postgresql96-contrib 附加第三方擴展
postgresql96-devel C語言開發Header頭文件和庫

第3步:檢查是否安裝成功

rpm -aq| grep postgres

第4步:創建數據庫存放路徑位置

爲方便進行統一管理,可以建立統一的路徑進行存放

mkdir -p /data/pg/data #存放數據庫的文件夾
chown -R postgres:postgres /data/pg #爲新創建的pg文件夾分配數據庫服務的操作權限
chown -R postgres:postgres /data/pg/data #爲存放數據庫的文件夾分配權限
chmod 750 /data/pg/data

第5步:設置環境變量

編輯/etc/profile文件,

vim /etc/profile

在末尾添加如下的信息配置:

PGDATA=/data/pg/data
PGHOST=127.0.0.1
PGDATABASE=postgres
PGUSER=postgres
PGPORT=5432
PATH=/usr/pgsql-9.6/bin:$PATH
export PATH
export PGDATA PGHOST PGDATABASE PGUSER PGPORT
export TMOUT=1000

然後爲了讓剛纔修改生效

source /etc/profile

查看是否已添加成功:

export 

設置環境變量(其他辦法):
export PATH=/usr/pgsql-9.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-9.6/lib
export PGDATA=/data/pg/dat

第6步:初始化數據庫

進入到postgres用戶下:

su postgres #切換到postgres用戶

initdb -D /data/pg/data #初始化數據庫
#或
/usr/pgsql-9.6/bin/postgresql96-setup initdb -D /data/pg/data

exit #退出當前postgres用戶

第7步:查看相關的安裝

cd /data/pg/data

第8步:配置遠程可訪問

修改文件1 : /data/pg/data/pg_hba.conf,添加可遠程進行密碼訪問方式

vim /data/pg/data/pg_hba.conf

找到# IPv4 local connections: 在它的下面添加一行

host    all             all             0.0.0.0/0         md5

修改文件2 : /data/pg/data/postgresql.conf配置文件
找到

#listen_addresses = 'localhost'

,將前面的#刪掉,參數localhost表示只允許當前服務器能鏈接數據庫,如果想指定地址可以訪問,可以輸入ip地址,多個地址時用逗號分隔,如果開放所有地址可以訪問,由使用

listen_addresses = '*'

找到

#port = 5432

將前面的#刪掉,這裏可以指定訪問數據庫的端口

第8步:修改配置開機啓動前準備

修改文件: /usr/lib/systemd/system/postgresql-9.6.service

nano /usr/lib/systemd/system/postgresql-9.6.service
#把aLocation of database direcotry配置節裏面沒有指定正確的PGDATA。所以我們需要將下面的PGDATA設置成正確值
Environment=PGDATA=/data/pg/data/

PS:修改遠程信息之後:
重啓postgresql-9.6服務,使配置文件重效
service postgresql-9.6 restart

第9步:設置開機啓動處理

systemctl enable postgresql-9.6.service

第10步:啓動postgresql數據庫

su postgres -c "/usr/pgsql-9.6/bin/pg_ctl start -D /data/pg/data"

ps -ef|grep postgres #查看相關進程

第11步 修改密碼:

使用postgres用戶登錄:

su postgres

連接數據庫:

psql -U postgres

修改postgres用戶密碼:

Alter user postgres with password '123456';

退出數據庫連接

\q

重啓一下服務

bash-4.2$ pg_ctl restart  
could not change directory to "/root": Permission denied
waiting for server to shut down.... done
server stopped
server starting
bash-4.2$ < 2018-03-08 16:44:37.861 CST > LOG:  redirecting log output to logging collector process
< 2018-03-08 16:44:37.861 CST > HINT:  Future log output will appear in directory "pg_log".

第12步 防火牆處理(關閉或添加端口):

PS:生產環境上一般不建議直接的關閉防火牆

 systemctl stop firewalld #關閉防火牆
systemctl enable firewalld #開機啓用防火牆
systemctl start firewalld #開啓防火牆
firewall-cmd --add-service=postgresql --permanent   #開放postgresql服務
firewall-cmd --zone=public --add-port=5432/tcp --permanent #或者可以直接添加端口
firewall-cmd --reload # 重載防火牆
firewall-cmd --list-ports #查看佔用端口

第13步 使用Navicat Premium進行遠程連接:

PS:因爲PG數據庫版本的問題,或導致出現錯誤
錯誤信息如下:
navicat premium出現PostgreSQL: column “rolcatupdate” does not exist error
會導致在連接成功後,操作建表或建立數據庫的時候都會出現提示錯誤

嘗試尋找問題:

原因:

最終解決:更換navicat premium的版本到navicat premium12即可

補充:

systemctl enable postgresql-9.5.service
su postgres
bash-4.2$ ps -ef|grep postgres
bash-4.2$ kill -9 5439 #先停止所有的進程
bash-4.2$ ps -ef|grep postgres # 無運行的進程
bash-4.2$ systemctl enable postgresql-9.6.service
然後輸入密碼:
bash-4.2$ service postgresql-9.6 restart
bash-4.2$ ps -ef|grep postgres #已經重新運行了
bash-4.2$ systemctl status postgresql-9.6.service # 有綠色出現,說明順利啓動了!
bash-4.2$ systemctl stop postgresql-9.6.service #先停止
bash-4.2$ systemctl start postgresql-9.6.service
PS:修改遠程信息之後:
重啓postgresql-9.6服務,使配置文件重效
service postgresql-9.6 restart

PS
雲服務器 ECS Linux CentOS 7 下重啓服務不再通過 service 操作,而是通過 systemctl 操作。

查看:systemctl status sshd.service

啓動:systemctl start sshd.service

重啓:systemctl restart sshd.service

自啓:systemctl enable sshd.service

systemctl restart postgresql-9.6.service

卸載PostgreSQL

yum erase postgresql96

PS:解決重音不敏感”排序規則,以及擴展pgcrypto函數的問題,在數據庫終端輸入

CREATE EXTENSION unaccent;

CREATE EXTENSION "pgcrypto"; 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章