標籤:his ubuntu rest 虛擬 開放 init key pack title
前言
如題,本篇blog記錄一下在Linux CentOS 7中安裝PostgresSQL的整個過程以及資料庫配置等,在Linux系統中,PostgreSQL的安裝方式分兩種,分別是:
- 二進位安裝包安裝
- 源碼編譯安裝
由於我們沒有什麼特殊需求所在在此選擇較為簡單的方式——二進位安裝包安裝,二進位包安裝的方法一般都是通過不同發行版本的Linux下的包管理器進行的,例如Debian和Ubuntu下是使用apt-get命令或aptitude命令來安裝,命令如下:
sudo apt-get install postgresql
而在RedHat。CentOS或Fedora下則使用yum工具來安裝PostgreSQL,命令如下:
yum install postgresql-server.x86_64
先大概瞭解一下,下面就具體介紹一下整個安裝過程和細節。
安裝PostgreSQL
我選擇的是yum安裝,需求是9.3的版本,所以直接輸入軟體庫的位置即可(安裝之前可以通過rpm -qa | grep postgres
命令查看是否有已安裝的postgresql的rpm包,如果有的話可以通過yum remove postgresql*
命令執行卸載):
yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
也可以直接在官方的RPM Repository中手動下載指定版本,地址如下:PostgreSQL RPM Repository(with Yum),根據需求選擇基於CentOS 7的9.3版本即可:
下載好之後進入rpm包目錄運行rpm -ivh ./pgdg-centos93-9.3-3.noarch.rpm
安裝rpm包即可,之後就可以繼續安裝PostgreSQL以及一些必備的組件,如官方給出的Guide:
如,由於我們這裡安裝的是9.3版本,所以直接輸入以下命令安裝即可:
yum install postgresql93-server postgresql93-contrib
安裝日誌如下:
安裝完成後首先要做的是初始化db,需要注意的一點是在CentOS 7中postgresql預設的安裝目錄是:/usr/pgsql-9.3,預設的資料目錄是/var/lib/pgsql/version/data,下面是官方給出的Guide:
這裡需要注意的是要到切換到postgresql的安裝目錄中執行初始化命令,我們可以在安裝目錄中找到initdb指令碼:
進入bin目錄運行初始化命令即可完成資料庫的初始化:
初始化成功就可以啟動資料庫了並登入了,啟動命令如下:
systemctl start postgresql-9.3.service
啟動後即可登入,我們使用postgres使用者進行登入:
如所示,可以看到已經成功啟動服務並查詢了資料庫版本,接下來通過\l命令可以查看目前有哪些資料庫:
如,可以看到預設有4個資料庫,\q為退出命令。為了安全起見,接下來我們修改一下postgres使用者的密碼,預設是空:
alter user postgres with password ‘111111‘;
如:
最後如果是作為DB伺服器的話需要將資料庫服務設定為開機啟動:
關於安裝相關的設定至此就已全部結束,接下來看看用戶端工具(Navicat)如何串連資料庫。
用戶端串連PostgreSQL
如題,既然用戶端要串連,首先第一步肯定是開放連接埠了,在CentOS 7中引入了一個更強大的防火牆——Firewall,所以我們需要在Firewall中開啟PostgreSQL的預設連接埠5432,也就是將5432連接埠加入到zone(Firewall的新特性,簡單講它的作用就是定義了網路地區網路連接的可信等級)中。命令如下:
firewall-cmd --zone=public --add-port=5432/tcp --permanent
這樣就成功的將5432連接埠加入了public地區中,permanent參數表示永久生效,即重啟也不會失效,最後不要忘記更新防火牆規則:
firewall-cmd --reload
OK,下面看一下public地區下所有已開啟的連接埠,命令如下:
firewall-cmd --zone=public --list-ports
可以看到5432連接埠已經成功開放:
只開放了連接埠並不夠,PostgreSQL在安全方面也做的很好,它可以指定哪些ip地址能遠端存取資料庫伺服器,預設情況下是只監聽本地,所以首先需要讓PostgreSQL監聽整個網路,首先進入PostgreSQL的安裝目錄,找到設定檔,路徑如下:
cd /var/lib/pgsql/9.3/data/
主要修改以下兩個檔案:
如,首先的PostgreSQL的主設定檔postgresql.conf,將listen_addresses前的#去掉,並將listen_addresses = ‘localhost’改成listen_addresses = ‘*’:
接下來要修改pg_hba.conf檔案,將允許訪問的ip地址加進列表,格式為”Type Database User Address Method”,比如我希望只有192.168.111.1這個地址能遠端存取PostgreSQL資料庫的話,加入下面的配置即可:
最後重啟資料庫服務使配置生效:
systemctl restart postgresql-9.3.service
此時就用主機的Navicat(192.168.111.1)串連虛擬機器中的PostgreSQL伺服器測試一下:
如,可以看到成功串連,至此關於PostgreSQL的安裝就已全部介紹完畢。
總結
簡單記錄一下在Linux CentOS 7系統下安裝PostgreSQL 9.3版本的全過程以及相關的配置,The End。
Linux CentOS 7 安裝PostgreSQL 9.3(發行版本)