跳到主要內容

在CentOS 5.5 編譯與安裝PostgreSQL

原本可以使用YUM 輕鬆安裝PostgreSQL 8, 安裝PostgreSQL 7.4 只是工作需要.

結果呢?  好!  這東西折騰了我好多天一直安裝不了 (使用YUM 以及 RPM以及編譯原始碼), 到現在幾乎放棄之下, 再次抓了PostgreSQL 7.4 的原始碼重新編譯一次.  這次竟給我搞成功了.

好了, 這鬼東西的安裝方法如下(也適用於CentOS 3 / 4):

p/s: 如果你的CENTOS 並沒有C Compiler, 那就需要安裝.  倘若已經有C 編譯器了, 可以略過步驟1.
  1. yum -y install gcc gcc-c++
  2. 去官方網站下載PostgreSQL 7.4.30
  3. wget http://wwwmaster.postgresql.org/redir/311/h/source/v7.4.30/postgresql-7.4.30.tar.gz
  4. tar xvfz postgresql-7.4.30.tar.gz
  5. cd postgresql-7.4.30
  6. 按照INSTALL 的方法, 指令如下:
  7. ./configure
  8. gmake
  9. su
  10. gmake install
  11. adduser postgres
  12. mkdir /usr/local/pgsql/data
  13. chown postgres /usr/local/pgsql/data
  14. su - postgres
  15. /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  16. /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
  17. /usr/local/pgsql/bin/createdb test
  18. /usr/local/pgsql/bin/psql test
  19. exit

接著設定環境, 如此一來才能使用psql 等指令:

PATH=$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
export PATH MANPATH

LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH


跟著要設定可以使用service postgesql start|stop|status ...  在剛才的postgresql-7.4.30 資料夾, 輸入:

su -c "cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql"
su -c "chmod a+x /etc/rc.d/init.d/postgresql"


最後的步驟(為了讓PHP 之類的能夠使用):

vi /usr/local/pgsql/data/pg_hba.conf, 修改成以下:

# TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
local   all         all                                             trust
# IPv4-style local connections:
#host    all         all         127.0.0.1         255.255.255.255   trust
host    all         all         127.0.0.1/32            md5
# IPv6-style local connections:
#host    all         all         ::1               ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff        trust
host    all         all         ::1/128               ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff        trust


vi /usr/local/pgsql/data/postgresql.conf, 修改成以下:
tcpip_socket = true



之後用 service postgresql restart, 然後用 psql -h 127.0.0.1 -U postgesql template1 測試看看是否能夠成功連線, 同時用netstat -l 指令檢查看看是否有 *:postgresql 的存在, 倘若有, 表示成功.

倘若有設定Firewall, 需要以下的步驟:

iptables -A INPUT -p tcp --dport 5432 -j ACCEPT

或者;
  1. iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 10.10.29.50 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT
  2. iptables -A OUTPUT -p tcp -s 10.10.29.50 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
然後 iptables restart

留言

這個網誌中的熱門文章

解決Apache 2.2, 關於HTTPS 之下使用PROXY 面對的 proxy server received an invalid response from an upstream server 以及 proxy: pass request body failed 的問題

修改以下 (proxy 以及 從proxy 接收的server): httpd.conf: ----------- 在 Include conf.d/*.conf 的前面加入以下: LimitRequestBody 2147483647  #2Gb Timeout 24000 ProxyTimeout 24000 ProxyBadHeader Ignore ssl.conf ---------- 在各個virtualhost 裡加入以下:     SSLEngine on     SSLProxyEngine on     SSLProxyVerify none     SSLProxyCheckPeerCN off     #SSLProxyCheckPeerName off     SSLProxyProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 以下這個只在proxy server 裡的virtualhost 設定     ProxyPass / https://REMOTE_HOST:443/ retry=1 acquire=3000 timeout=3600 Keepalive=On 

解決CentOS 8 的 failed to set locale defaulting to c.utf-8 的問題

這原因是沒有安裝好支援的語言與字型, 特別是UTF8 並沒有被安裝到 因此使用以下指令確認 localedef -i en_US -f UTF-8 en_US.UTF-8 假如出現 "[error] character map file `UTF-8' not found: No such file or directory" 或者 [error] default character map file 'ANSI_X3.4-1968' not found : No such file or directory 那就安裝UTF8 吧 yum whatprovides "*/UTF-8.gz" 如果找到的話 "UTF-8.gz" 的話 yum install "*/UTF-8.gz" -y 再執行一次: localedef -i en_US -f UTF-8 en_US.UTF-8