RedHat搭建Web運(yùn)用之PostgreSQL數(shù)據(jù)庫(kù)安裝(一)

開心一笑

【男:?jiǎn)柲銈€(gè)問題,你喜歡貓還是狗滔迈?
女:狗狗止吁。
男:汪汪汪!
女:……
男:我太幸福了燎悍,你竟然喜歡我敬惦!】

提出問題

如何一步一步搭建web服務(wù)器?谈山?俄删?

解決問題

勵(lì)志圖片

最近在給一家銀行部署公司的產(chǎn)品,覺得蠻有意思的奏路,特意整理下畴椰,分享給大家:

軟件環(huán)境需求

本文章主要分享如何安裝postgresql數(shù)據(jù)庫(kù)以及如何如何搭建離線yum和安裝相關(guān)的依賴。

數(shù)據(jù)庫(kù)是安裝到一臺(tái)RedHat6.7服務(wù)器上鸽粉,redis迅矛,jdk,tomcat是安裝到另一臺(tái)服務(wù)器上的

  • 數(shù)據(jù)庫(kù)服務(wù)器 postgresql-9.4.0 root潜叛、innodb(用戶)
001.png

安裝環(huán)境準(zhǔn)備

使用root賬號(hào)登陸系統(tǒng)

#su -l

確認(rèn)系統(tǒng)時(shí)區(qū)

#date

安裝包和腳本的放置位置

  • 行方提供應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器秽褒。

  • 步驟1:root用戶登錄系統(tǒng)

  • 步驟2:應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器各創(chuàng)建安裝包放置目錄,執(zhí)行如下命令

      #  mkdir  /rjxf
    

步驟3:將安裝包拷貝到目錄/rjxf下

端口占用概況

序號(hào) 名字 所在服務(wù)器位置 端口號(hào)

  • 1 Postgresql 數(shù)據(jù)庫(kù)服務(wù)器 5432
  • 2 Redis 應(yīng)用服務(wù)器 6379
  • 3 Tomcat 應(yīng)用服務(wù)器 8080

檢查服務(wù)器的使用狀況

  • 1 查看磁盤使用情況,如果磁盤不足,則使用掛載 df -hl
  • 2 mount方法使用 mkdir [自定義掛載目錄]
    mount -o loop /掛載文件.iso /[自定義掛載目錄]
  • 3 查看服務(wù)器的整體安裝情況 cat /etc/redhat-release
  • 4 檢查gcc安裝情況威兜,提示沒有文件輸入表示安裝成功 gcc
  • 5 安裝gcc yum install gcc

掛載鏡像

【前置條件】:在數(shù)據(jù)庫(kù)服務(wù)器需要掛載鏡像销斟。
步驟1:root用戶登錄系統(tǒng)

# cd /
# mkdir rhel
# mount -o loop /rjxf/rhel-server-6.7-x86_64-dvd.iso /rhel

驗(yàn)證掛載是否成功

# mount 

搭建離線yum

# vi /etc/yum.repos.d/local.repo

在文件中增加下面配置

[dvd]
name=install dvd
baseurl=file:///rhel/Server
enabled=1
gpgcheck=0

保存退出后,清除YUM緩存(需要按ESC)

# yum clean all

查看可以安裝的程序包

# yum list

把yum.repos.d中的原有的文件和備份刪除

安裝GCC

程序包需要編譯,安裝gcc

# yum install gcc

安裝postgresql數(shù)據(jù)庫(kù)

創(chuàng)建用戶及數(shù)據(jù)目錄

【前置條件】:在數(shù)據(jù)庫(kù)服務(wù)器上椒舵。
步驟1:root用戶登錄系統(tǒng)

步驟編號(hào) 步驟名稱 執(zhí)行命令

  • 1 創(chuàng)建innodb用戶 useradd innodb

  • 2 給innodb用戶創(chuàng)建密碼 passwd innodb

  • 3 切換根目錄 cd /

  • 4 創(chuàng)建innodb文件夾 mkdir /innode

  • 5 創(chuàng)建shell文件夾 mkdir /innode/shell

  • 6 復(fù)制腳本文件 cp /rjxf/initTable.sql /innode/shell/(這里可以先略過蚂踊,這是我們項(xiàng)目的初始化腳本)

  • 7 復(fù)制腳本文件 cp /rjxf/initData.sql /innode/shell/(這里可以先略過,這是我們項(xiàng)目的初始化腳本)

  • 8 給文件夾賦權(quán) chown innodb:innodb -R /innode

  • 9 切換到innodb用戶 su innodb

  • 10 創(chuàng)建文件數(shù)據(jù)目錄

      mkdir /innode/postgresql 
      mkdir /innode/localbackup
      mkdir /innode/pgdata
      mkdir /innode/logs
      mkdir /innode/logs/postgresql_archivedlog
      mkdir /innode/backup 
    
  • 11 切換root用戶 su root

  • 12 進(jìn)入innode cd /innode

  • 13 文件授權(quán) chown innodb:innodb postgresql/ localbackup/ pgdata/ logs/ backup/

  • 14 文件授權(quán) chown innodb:innodb -R /rjxf

  • 15 安裝依賴包

      yum install gcc-c++ -y
      yum install readline-devel  -y
      yum install zlib-devel -y
      yum install python-devel  -y
    
  • 16 編譯安裝UUID包 cd /rjxf

      tar -zxvf uuid-1.6.2.tar.gz
      cd uuid-1.6.2
      ./configure
      make
      make install
    
安裝postgressql數(shù)據(jù)庫(kù)步驟列表
  • 1 切換到innodb用戶 su innodb
  • 2 切換安裝包目錄下 cd /rjxf
  • 3 解壓postgresql tar -zxvf postgresql-9.4.0.tar.gz
  • 4 進(jìn)入postgresql cd postgresql-9.4.0
  • 5 配置初始化數(shù)據(jù)庫(kù) ./configure --prefix=/innode/- postgresql --with-blocksize=8 --with-wal-blocksize=8 --with-ossp-uuid
  • 6 預(yù)編譯 make
  • 7 編譯數(shù)據(jù)庫(kù) make install
配置數(shù)據(jù)庫(kù)環(huán)境變量步驟列表
  • 1 切換到root用戶 su -l 或 su root

  • 2 編輯數(shù)據(jù)庫(kù)配置文件 vi /etc/profile

  • 3 這個(gè)變量添加在profile的最后(vi)

    export PATH=/innode/postgresql/bin:$PATH
    export LD_LIBRARY_PATH=/innode/postgresql/lib:$LD_LIBRARY_PATH
    export PGDATA=/innode/pgdata
    INNO_HOME=/innode

  • 4 重啟數(shù)據(jù)庫(kù)環(huán)境變量 source /etc/profile

  • 5 檢查環(huán)境變量是否生效 echo $PATH

初始化數(shù)據(jù)庫(kù)步驟列表
  • 1 切換到innodb用戶操作數(shù)據(jù)庫(kù) su innodb
  • 2 進(jìn)入postgresql數(shù)據(jù)庫(kù)下的bin文件 cd /innode/postgresql/bin
  • 3 初始化postgresql數(shù)據(jù)庫(kù) ./initdb --encoding=utf8 -D /innode/pgdata
  • 4 配置數(shù)據(jù)庫(kù)訪問地址
    (將注釋去除) vi /innode/pgdata/postgresql.conf
  • 5 將config文件下的listen_addresses參數(shù)改為""
    port 修改端口 5432 listen_addresses = '
    '
    port=5432
  • 6 修改日志放置路徑 log_directory='/innode/logs/pg_log'
  • 7 存檔模式設(shè)置 archive_mode = on
    archive_command = 'cp "%p" /innode/logs/postgresql_archivedlog/"%f"'
    archive_timeout = 3600
  • 8 主庫(kù)備份 wal_level = hot_standby
  • 9 編輯數(shù)據(jù)庫(kù)ip的連接方式 vi /innode/pgdata/pg_hba.conf
  • 10 編輯config文件下的IPv4的配置 # IPv4 local connections:
    host all all 127.0.0.1/32 md5
    host all all 0.0.0.0/0 md5
  • 11 停止數(shù)據(jù)庫(kù)服務(wù)
    注:如果原來數(shù)據(jù)庫(kù)服務(wù)已停止笔宿,可以忽略 pg_ctl stop
  • 12 啟動(dòng)數(shù)據(jù)庫(kù)服務(wù) pg_ctl start
  • 13 切換root用戶 su root
  • 14 切換到數(shù)據(jù)庫(kù)uuid目錄 cd /rjxf/postgresql-9.4.0/contrib/uuid-ossp/
  • 15 編譯 make && make install
  • 16 將uuid庫(kù)復(fù)制到數(shù)據(jù)庫(kù)的庫(kù)中 cp /usr/local/lib/libuuid.so.16 /innode/postgresql/lib/
執(zhí)行數(shù)據(jù)庫(kù)初始化腳本
  • 1 進(jìn)入postgresql數(shù)據(jù)庫(kù)的bin目錄 cd /innode/postgresql/bin

    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/de/initTable.sql
    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/pcs/pcs-initTable.sql

  • 2 將install下的腳本文件分別導(dǎo)入數(shù)據(jù)庫(kù)(如果在數(shù)據(jù)庫(kù)服務(wù)器,可忽略端口和IP)

    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/pcs/pcs-initData.sql
    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/de/initData.sql

設(shè)置開機(jī)自啟動(dòng)postgresql服務(wù)
  • 1 切換至root用戶 su root

  • 2 編輯配置文件 vi /etc/rc.local

  • 3 在文檔結(jié)尾加入命令

    su -l innodb -c "/innode/postgresql/bin/postgres -D /innode/pgdata/ -c config_file=/innode/pgdata/postgresql.conf &"

  • 4 保存退出 :wq

防火墻配置(iptables)
  • 1 轉(zhuǎn)換root用戶 su root
  • 2 修改linux操作系統(tǒng)開放端口 vi /etc/sysconfig/iptables
  • 3 開放5432端口犁钟,在-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT下插入這一行端口配置 -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
  • 4 重啟端口配置文件 service iptables restart

注: 如果/etc/sysconfig/iptables為新建文件則添加如下信息

步驟編號(hào) 步驟名稱 執(zhí)行命令

  • 1 加入命令,配置文件

      # Firewall configuration written by system-config-firewall
      # Manual customization of this file is not recommended.
      *filter
      :INPUT ACCEPT [0:0]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [0:0]
      -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      -A INPUT -p icmp -j ACCEPT
      -A INPUT -i lo -j ACCEPT
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
      -A INPUT -j REJECT --reject-with icmp-host-prohibited
      -A FORWARD -j REJECT --reject-with icmp-host-prohibited
      COMMIT
    

2 保存退出 service iptables restart

查看數(shù)據(jù)庫(kù)步驟列表
  • 1 切換用戶到innodb su innodb
  • 2 進(jìn)入postgresql數(shù)據(jù)庫(kù)的bin目錄 cd /innode/postgresql/bin
  • 3 登錄數(shù)據(jù)庫(kù),如果已登錄數(shù)據(jù)庫(kù)泼橘,可省略此步 ./psql -U innodb innode
  • 4 查看當(dāng)前數(shù)據(jù)庫(kù)系統(tǒng)安裝的數(shù)據(jù)庫(kù)情況涝动,查看數(shù)據(jù)庫(kù)是否已存 \l
  • 5 從innodb數(shù)據(jù)庫(kù)執(zhí)行查詢操作,如果能查詢到數(shù)據(jù)炬灭,證明數(shù)據(jù)庫(kù)安裝成功醋粟。 select * from sys_user;
  • 6 退出數(shù)據(jù)庫(kù) \q
修改postgres的參數(shù)配置
  • 1 切換innodb用戶 su innodb

  • 2 備份配置文件 cp /innode/pgdata/postgresql.conf /innode/pgdata/postgresql.conf.bak

  • 3 修改參數(shù),包括5個(gè)參數(shù) cd

      work_mem=100MB  #工作內(nèi)存或者操作內(nèi)存
      shared_buffers=128MB  #改為物理內(nèi)存的30%,假設(shè)物理內(nèi)存為24G米愿,則24G*30%=7372MB
      maintenance_work_mem  512MB  #維護(hù)工作內(nèi)存
      checkpoint_segments  30 # WAL log的最大數(shù)量
      max_connections = 100  #修改數(shù)據(jù)庫(kù)連接數(shù)
    
  • 4 重啟數(shù)據(jù)庫(kù)服務(wù)

    pg_ctl stop
    pg_ctl start

導(dǎo)入數(shù)據(jù)異常處理

若查看數(shù)據(jù)庫(kù)發(fā)現(xiàn)數(shù)據(jù)未正常導(dǎo)入厦凤,先執(zhí)行刪除數(shù)據(jù)庫(kù),然后重新執(zhí)行新建innodb數(shù)據(jù)庫(kù)育苟、將腳本數(shù)據(jù)文件導(dǎo)入innodb數(shù)據(jù)庫(kù)较鼓。
如下步驟為刪除數(shù)據(jù)庫(kù)。
步驟編號(hào) 步驟名稱 執(zhí)行命令

  • 1 進(jìn)入postgresql數(shù)據(jù)庫(kù)下的bin文件 cd /innode/postgresql/bin
  • 2 刪除innode數(shù)據(jù)庫(kù) ./dropdb innode
安裝postgresql異常處理

若初始化數(shù)據(jù)庫(kù)或啟動(dòng)數(shù)據(jù)庫(kù)碰到問題無法解決违柏,可重新安裝數(shù)據(jù)庫(kù)笨腥。
重新安裝數(shù)據(jù)庫(kù)之前,先執(zhí)行如下步驟勇垛。
步驟編號(hào) 步驟名稱 執(zhí)行命令

  • 1 查看postgresql進(jìn)程運(yùn)行情況 ps -ef|grep post
  • 2 殺掉postgresql進(jìn)程 kill -9 postgresql的進(jìn)程ID
  • 3 刪除文件 rm -rf /innodb/postgresql

讀書感悟

來自《安妮日記》

  • 我希望,我能完全信任你士鸥,我還從來沒有能這樣信任過誰闲孤。我也希望,你將給我最大的支持烤礁。
  • 只要我還活著讼积,能看到這陽光,這無云的天空脚仔,我就不可能不幸福勤众!
  • 通過這事,我明白了:只有在爭(zhēng)吵后鲤脏,才能真正看清一個(gè)人们颜。這時(shí)候,才能清楚他們的真實(shí)性格猎醇。
  • 對(duì)于孤單窥突、驚恐、悲傷的人來說硫嘶,最佳良藥就是出去走走阻问,去一個(gè)只有天空、自然和上帝的地方沦疾,一個(gè)無人的地方称近。只有這樣,才能感受到本來的樣子哮塞,感受到上帝希望人們?cè)诖緲愫妥匀坏拿谰爸行腋刨秆?鞓贰?/li>
  • 我開始思考、寫作忆畅,終于得出結(jié)論:其他人不再和我有關(guān)系坛善。他們沒有權(quán)利將我當(dāng)作鐘擺隨意擺布、來回晃蕩。我想以自己的方式改變自己眠屎。
    我相信自己剔交。
  • 我們?nèi)蓟钪覀儾⒉恢罏槭裁椿钪鸟茫恢廊ハ蚝畏结#覀兓钪哪康亩际且腋#覀兊纳Р钊f別卻又沒什么兩樣葫督。

其他

如果有帶給你一絲絲小快樂竭鞍,就讓快樂繼續(xù)傳遞下去,歡迎轉(zhuǎn)載橄镜,點(diǎn)贊偎快,頂,歡迎留下寶貴的意見洽胶,多謝支持晒夹!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市姊氓,隨后出現(xiàn)的幾起案子丐怯,更是在濱河造成了極大的恐慌,老刑警劉巖翔横,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件读跷,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡禾唁,警方通過查閱死者的電腦和手機(jī)效览,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荡短,“玉大人钦铺,你說我怎么就攤上這事≈ぃ” “怎么了矛洞?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)烫映。 經(jīng)常有香客問我沼本,道長(zhǎng),這世上最難降的妖魔是什么锭沟? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任抽兆,我火速辦了婚禮,結(jié)果婚禮上族淮,老公的妹妹穿的比我還像新娘辫红。我一直安慰自己凭涂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布贴妻。 她就那樣靜靜地躺著切油,像睡著了一般。 火紅的嫁衣襯著肌膚如雪名惩。 梳的紋絲不亂的頭發(fā)上澎胡,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音娩鹉,去河邊找鬼攻谁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛弯予,可吹牛的內(nèi)容都是我干的戚宦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼锈嫩,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼受楼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起祠挫,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悼沿,沒想到半個(gè)月后等舔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡糟趾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年慌植,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片义郑。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蝶柿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出非驮,到底是詐尸還是另有隱情交汤,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布劫笙,位于F島的核電站芙扎,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏填大。R本人自食惡果不足惜戒洼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望允华。 院中可真熱鬧圈浇,春花似錦寥掐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蠕搜,卻和暖如春怎茫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妓灌。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工轨蛤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人虫埂。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓祥山,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親掉伏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缝呕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容