fedora22用rpm包安裝配置postgresql資料庫

來源:互聯網
上載者:User

標籤:fedora   linux   postgresql   資料庫安裝配置   postgres   

嚴格內網環境,無網路連接,新裝fedora 22系統,無任何其他配置。

安裝1.安裝環境:
  1. 作業系統:fedora 22
  2. 資料庫:postgresql-9.4
  3. 安裝過程使用root使用者
2.安裝包:
  1. postgresql94-libs-9.4.4-1PGDG.f22.x86_64.rpm
  2. postgresql94-9.4.4-1PGDG.f22.x86_64.rpm
  3. postgresql94-server-9.4.4-1PGDG.f22.x86_64.rpm
3.嚴格按照順序安裝:
rpm -ivh postgresql94-libs-9.4.4-1PGDG.f22.x86_64.rpmrpm -ivh postgresql94-9.4.4-1PGDG.f22.x86_64.rpmrpm -ivh postgresql94-server-9.4.4-1PGDG.f22.x86_64.rpm
4.安裝完成之後:
  1. 預設的pg資料庫安裝目錄為:/usr/pgsql-9.4
  2. 預設的資料檔案目錄為:/var/lib/pgsql/9.4/data
5.特別注意:用rpm包安裝比直接用工具yum裝少了2步:
  1. postgres提供的系統命令:如pg_ctl,psql,initdb,pg_dump等沒有自動寫入系統內容變數,因此不能直接使用,而要在安裝目錄下或者帶上全路徑或者手動加入全域環境變數後,才可以在所有的使用者下直接使用。
  2. 和yum安裝一樣,pg會建立一個系統使用者postgres,但在系統/home目錄下沒有建立postgres使用者主目錄。對於使用預設資料目錄的使用者來說,這個目錄是可有可無的。但是對於要該資料目錄到postgres使用者主目錄下來說,這個使用者主目錄則必需手動建立。
6.設定資料檔案目錄要自己設定資料庫的資料檔案目錄為postgres使用者的主目錄,由於rpm安裝沒有自動建立,所以需要手動建立。建立目錄
mkdir -p /home/postgres/data
給目錄賦權
chown -R postgres:postgres /home/postgres
配置1.初始化系統的資料庫服務初始化資料庫簇
sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb
這裡要特別注意的是pgsql-9.2以及之前版本的初始化方式,兩者的最大區別在於命令postgresql後面有沒有跟版本資訊
sudo postgresql-setup initdb
啟動服務預設postgresql的服務是關閉的,手動啟動
sudo systemctl start /usr/pgsql-9.4/bin/postgresql-9.4.service
也要注意psql-9.2以及之前版本的命令
sudo systemctl start postgresql.service
設定服務開機啟動要設定開機啟動
sudo systemctl enable /usr/pgsql-9.4/bin/postgresql-9.4.service
也要注意psql-9.2以及之前版本的命令
sudo systemctl enable postgresql.service
重啟或者重新載入要重啟或者reload執行個體,用命令
sudo systemctl restart /usr/pgsql-9.4/bin/postgresql-9.4.servicesudo systemctl reload /usr/pgsql-9.4/bin/postgresql-9.4.service
也要注意psql-9.2以及之前版本的命令
sudo systemctl restart postgresql.servicesudo systemctl reload postgresql.service
2.初始化資料庫切換使用者先從當前的root使用者切換到postgres使用者,因為資料庫操作必須使用pg自己建的這個使用者:
su postgres 
切換目錄也別注意裡提到過,pg提供的命令沒有加入到環境變數,需要手動加入或者到命令目錄下執行,切換到pg資料庫安裝目錄的bin目錄下:
cd /usr/pgsql-9.4/bin
初始化這裡注意是初始化到我們上一步自己建立的資料目錄下,而不是pg預設的資料目錄下,所有需要加上路徑
./initdb -D /home/postgres/data
初始化成功後會有提示:
2.啟動資料庫採用logfile的方式啟動,上面也有兩種啟動方式的提示:
./pg_ctl -D /home/postgres/data -l logfile start
命令沒有錯,但是呢一啟動就報錯:logfile沒有許可權。我是百思不得其解:啟動的資料檔案夾是屬於postgres使用者的。我又嘗試先去/home/postgres下先建好logfile檔案再啟動還是報同樣的錯誤,但是明明檔案夾和檔案都是屬於目前使用者postgres的啊。後來問了bigzhu之後我自己也是恍然大悟:logfile檔案沒有指定目錄預設是在目前的目錄建立的,但是目前的目錄/usr/pgsql-9.4/bin是屬於root使用者的(因為安裝時使用的是root),所以目前使用者postgres是沒有許可權在root使用者的檔案夾中建立logfile檔案的,所以才啟動失敗。指定logfile檔案的路徑,用命令再啟動
./pg_ctl -D /home/postgres/data -l /home/postgres/logfile start
OK,啟動成功。3.啟動錯誤分析基於以上對錯誤的理解,那麼採用其他2種方式也應該是可以的。yum安裝的啟動方式如果採用的是類似yum的包管理工具安裝,那麼pg的目錄已加入了環境變數,在/home/postgres目錄下,切換到postgres使用者,然後用命令
pg_ctl -D /home/postgres/data -l logfile start
肯定沒有問題,logfile檔案就建立在當前屬於postgres使用者的檔案夾內。命令全路徑啟動在/home/postgres目錄下,切換到postgres使用者,然後用命令的全路徑
/usr/pgsql-9.4/bin/pg_ctl -D /home/postgres/data -l logfile start
應該也沒有問題,logfile檔案也是建立在當前屬於postgres使用者的檔案夾內。
4.開啟遠程連結pg資料庫預設只開啟本地連結,不能通過網域名稱或者ip來遠程連結,修改設定檔
su rootvi /home/postgres/data/postgresql.conf
注意這裡要使用修改後的資料目錄來配置,而不是pg預設的安裝目錄。修改
#listen_addresses = 'localhost'
為對所有的ip都監聽,注意要去掉注釋符號#
listen_addresses = '*'
5.修改訪問認證用命令
su rootvi /home/postgres/data/pg_hba.conf
修改
# IPv4 local connections:host    all             all             127.0.0.1/32          trust
為md5認證
# IPv4 local connections:host    all             all             0.0.0.0/0          md5
6.重啟資料庫切換使用者,命令重啟
/usr/pgsql-9.4/bin/pg_ctl -D /home/postgres/data -l logfile restart

到此,資料庫安裝配置啟動全部完成,可以正常使用。錯誤補充當我使用遠程應用伺服器串連到本資料庫時報錯:
psql: 無法聯結到伺服器: 沒有到主機的路由        伺服器是否在主機 "135.32.9.99" 上運行並且準備接受在連接埠5432 上的 TCP/IP 聯結?
用圖形介面工具測試報錯:現在的情況是:
  1. 資料庫已經啟動並正常運行,連接埠是5432;
  2. 遠程連結已經設定完成並且重啟了資料庫;
但是遠程連結就連不上,最後發現的原因是feodra 22內建的防火牆開啟,把外來連結屏蔽掉了,關掉feodra的防火牆:
sudo systemctl stop firewalld.service
連結成功,可以使用。

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

fedora22用rpm包安裝配置postgresql資料庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.