1. 检查PostgreSQL 是否已经安装
rpm -qa|grep postgres
如果rpm安装的用以下方式卸载:
用 rpm -ev 命令卸载
或者用
yum remove postgres
yum remove pgsql
删除 rm -rf /etc/init.d/postgresql
删除原来 rm -rf /usr/local/pgsql9.2
删除 rm -rf /usr/pgsql-9.2
删除 rm -rf /var/lib/pgsql/9.2/data
userdel -r postgres
groupdel postgres
2.下载postgresql
wget http://ftp.postgresql.org/pub/source/v9.2.4/postgresql-9.2.4.tar.gz
3. 解压
tar -zxvf postgresql-9.2.4.tar.gz
4.进入解压后的目录
cd postgresql-9.2.4
5开始编译
./configure --prefix=/usr/pgsql-9.2
(如果有以下错误)
-----------------------以下是我编译时遇到的错误----------------------
第一个问题:
configure:error: in'/root/postgresql-9.2.4':
configure:error: no acceptable C compiler foundin $PATH
原因是没有GCC安装即可
#yum -y install gcc
第二问题:
configure: error: readline library not found
少readline库,安装即可
#yum -y install readline-devel
第三个问题:
configure: error: zlib library not found
安装zlib
#yum -y install zlib-devel
也许每个人的问题都不一样,编译的时候找到错误提示,百度一下,应该可以有答案的,我遇到的也就是这三个
-----------------------------------------------------------------------
6.make
7.make install
8.创建用户组和用户:
groupadd postgres
useradd -g postgres postgres
passwd postgres 输入密码 我是输入了123456
9.创建数据库库文件存储目录、给postgres赋予权限:
cd /var/lib
mkdir pgsql
cd pgsql/
mkdir 9.2
cd 9.2
mkdir data
mkdir log
cd /var/lib/pgsql/9.2/
这个data目录 必须是chmod 700的权限 否则起不来
chown postgres.postgres data
chown postgres.postgres log
chmod 700 data
10.初始化数据库目录:
切换用户
su - postgres
初始化数据
/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data
11.配置监听地址和端口:(必须用postgres用户修改)
cd /var/lib/pgsql/9.2/data
vi postgresql.conf
修改
listen_addresses = '*'
port = 5432
12.允许远程连接:
vi pg_hba.conf
增加一行修改
host all all 0.0.0.0/0 md5
md5是要密码 trust 是不要密码
配置iptables让远程主机能访问:
vi /etc/sysconfig
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
service iptables restart
13启动数据库
/usr/pgsql-9.2/bin/postmaster -D /var/lib/pgsql/9.2/data
如果报错误
主要是看你"/tmp/.s.PGSQL.5432.lock": Permission denied"..
删除这个件用root的用户 rm -rf /tmp/.s.PGSQL.5432.lock
LOG: could not bind Unix socket: Address already in use
HINT: Is another postmaster already running on port 5432? If not, remove socket file "/tmp/.s.PGSQL.5432" and retry.
删除这个件用root的用户 rm -rf /tmp/.s.PGSQL.5432
14,设置密码用postgres用户
/usr/pgsql-9.2/bin/psql -p 5432 -U postgres
可以修改超级用户postgres的密码
ALTER USER postgres WITH PASSWORD '123456';
用客户端起来测试 成功
15. 让postgresql数据库随系统启动而启动:
将启动脚本拷贝到/etc/init.d目录下,具体执行如下命令:
su root
cd /etc/init.d
#cd (第一步解压的安装文件目录)/postgresql-9.2.4/contrib/start-scripts
cd /opt/soft/postgresql-9.2.4/contrib/start-scripts
cp linux /etc/init.d/postgresql
cd /etc/init.d
chmod +x postgresql
vi postgresql
修改
prefix=/usr/pgsql-9.2
PGDATA="/var/lib/pgsql/9.2/data"
PGUSER=postgres
PGLOG="/var/lib/pgsql/9.2/log/serverlog"
设置postgresql服务开机自启动
chkconfig --add postgresql
启动数据库:
service postgresql stop
service postgresql start