PostgreSQL數據庫安裝
2018年01月31日 10時53分13秒
編譯以及安裝
源碼編譯
1) 官網下載源碼安裝包(本次源碼安裝包名:postgresql-9.6.0.tar.gz)。
2) 為了安裝的管理,Linux機器一般需要先 創建 三個目錄:編譯目錄、數據庫安裝目錄、數據初始化目錄。
3) 這兒使用的目錄如下:
編譯目錄 | 數據庫安裝目錄 | 數據存儲目錄 |
---|---|---|
/usr/local/src/postgresql | /usr/local/pgsql9.6.0/ | /data/pgdata |
4) 將源碼安裝包上傳到編譯目錄,並使用tar命令解壓。
tar -xvf postgresql-9.6.0.tar.gz
5) 安裝postgresql依賴包
# 如果安裝報錯,再次運行一次
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
注: redhat7.4配置yum源步驟見:傳送門
6) 對源碼進行編譯,源碼編譯使用root用戶即可
# 進入解壓目錄
#對於9.X版本的默認線程安全,所以不用添加線程安全的選項了
#第一步就是使用configure命令
./configure --prefix=/usr/local/pgsql9.6.0 --with-perl --with-python
#第二步使用make,make的版本需要在3.8之上,版本查看:make --version
make
#第三步使用make install安裝,需要root權限才能對/usr/local有寫權限
make install
程序安裝
1) 安裝之后:建立軟連接,方便后期升級維護
ln -sf /usr/local/pgsql9.6.0/ /usr/local/pgsql
2) 設置可執行文件與共享庫的路徑:
如果是將語句加在.profile或.bash_profile文件中,界面登錄是不會生效的。所以可以加在/etc/profile文件中
#將postgresql自帶命令路徑添加到PATH
export PATH=/usr/local/pgsql/bin:$PATH
#設置共享庫的路徑
export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
#設置數據存儲的路徑
export PGDATA=/data/pgdata/
#創建用戶
useradd -U -p 123456 postgres
#如果這個目錄不屬於postgres用戶和組,可以使用chown修改
chown postgres:postgres /data/pgdata/
#將所有的參數設置完成之后,將變量導出使其生效
source /etc/profile
3) 將依賴的環境變量導出之后,進行數據庫初始化到數據存儲目錄之中
#切換為postgres用戶初始化數據庫
su - postgres
#數據庫的初始化,命令之后不指定PGDATA,默認使用環境變量PGDATA中存儲的路徑
initdb
4) 如果需要安裝contrib下的工具可以到之前解壓的主目錄下的contrib目錄運行下面的命令
make;
sudo make install;
數據庫的啟動和停止
啟動數據庫
# 切換為postgres用戶后啟動
su - postgres
pg_ctl start -D $PGDATA
#PGDATA是前面導出的數據庫的數據目錄,也可以直接在命令后面加目錄啟動
關閉數據庫
# 切換為postgres用戶后停止
su - postgres
pg_ctl stop -D $PGDATA [ -m shutdown-mode ]
-m為停止方法:(3個參數)
smart:等待所有連接中止之后
fast:快速關閉,斷開客戶端連接,讓已有事務回滾
immediate:立即退出,下次進入需要修復
數據庫開機自動啟動
1) 開機自動啟動,需要將解壓路徑下的contrib/start-scripts/linux文件添加執行權限, 並且修改該文件中的PGDATA參數為自己的實際的路徑,prefix參數修改為前面數據庫的安裝目錄,前面將數據庫的安裝目錄添加了軟連接,這兒修改為軟連接的目錄就可以了(強烈推薦使用前面軟連接的做法,方便管理)
2) 之后將linux文件復制到/etc/init.d/下重命名為postgresql
#添加為開機前啟動
chkconfig --add postgresql
#對服務的管理命令
service postgresql {start|stop|restart|reload|status}
遠程連接配置
需要配置兩個文件,位於數據庫數據目錄()
postgresql.conf
pg_hba.conf


數據庫的基本操作
--創建用戶
create user hzhang with password 'hzhang';
--賦權限
alter user hzhang with createdb;
--修改用戶密碼
alter user hzhang with password 'hzhang';
--創建一個數據庫,數據庫擁有者hzhang
create database moon owner hzhang;
安裝過程中的報錯
基本都是安裝依賴包的時候沒有安裝造成的
報錯1:configure: error: no acceptable C compiler found in $PATH

解決方法:安裝gcc套件
yum install gcc
報錯2:configure: error: readline library not found

解決方法:安裝readline-devel
yum list | grep readline
yum install readline-devel.x86_64
報錯3:configure: error: zlib library not found

解決方法:安裝zlib-devel
yum list | grep zlib
yum install zlib-devel.x86_64
報錯4:configure: error: header file <Python.h> is required for Python

解決方法
yum install python python-devel