原本可以使用YUM 輕鬆安裝PostgreSQL 8, 安裝PostgreSQL 7.4 只是工作需要.
結果呢? 好! 這東西折騰了我好多天一直安裝不了 (使用YUM 以及 RPM以及編譯原始碼), 到現在幾乎放棄之下, 再次抓了PostgreSQL 7.4 的原始碼重新編譯一次. 這次竟給我搞成功了.
好了, 這鬼東西的安裝方法如下(也適用於CentOS 3 / 4):
p/s: 如果你的CENTOS 並沒有C Compiler, 那就需要安裝. 倘若已經有C 編譯器了, 可以略過步驟1.
vi /usr/local/pgsql/data/pg_hba.conf, 修改成以下:
vi /usr/local/pgsql/data/postgresql.conf, 修改成以下:
之後用 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
或者;
結果呢? 好! 這東西折騰了我好多天一直安裝不了 (使用YUM 以及 RPM以及編譯原始碼), 到現在幾乎放棄之下, 再次抓了PostgreSQL 7.4 的原始碼重新編譯一次. 這次竟給我搞成功了.
好了, 這鬼東西的安裝方法如下(也適用於CentOS 3 / 4):
p/s: 如果你的CENTOS 並沒有C Compiler, 那就需要安裝. 倘若已經有C 編譯器了, 可以略過步驟1.
- yum -y install gcc gcc-c++
- 去官方網站下載PostgreSQL 7.4.30
- wget http://wwwmaster.postgresql.org/redir/311/h/source/v7.4.30/postgresql-7.4.30.tar.gz
- tar xvfz postgresql-7.4.30.tar.gz
- cd postgresql-7.4.30
- 按照INSTALL 的方法, 指令如下:
- ./configure
- gmake
- su
- gmake install
- adduser postgres
- mkdir /usr/local/pgsql/data
- chown postgres /usr/local/pgsql/data
- su - postgres
- /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
- /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
- /usr/local/pgsql/bin/createdb test
- /usr/local/pgsql/bin/psql test
- 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
或者;
然後 iptables restart
- 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
- iptables -A OUTPUT -p tcp -s 10.10.29.50 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
留言
張貼留言