linux 安装postgreSQL 9版本

本文详细介绍了在CentOS 5.5环境下使用gcc 4.1.2编译安装PostgreSQL 9.1.7的过程,并提供了从创建用户、设置环境变量到初始化数据库的具体步骤。此外还介绍了如何设置PostgreSQL的开机自启动以及解决启动过程中遇到的一些常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.编译环境
Linux: CentOS 5.5
gcc: 4.1.2
1. 安装PostgreSQL
1) 解压postgresql-9.1.7.tar.bz2
tar jxvf postgresql-9.1.7.tar.bz2
postgresql-9.1.7.tar.bz2
这里写图片描述
2) 进入解压后的postgresql-9.1.7目录
cd postgresql-9.1.7
这里写图片描述
3) 编译postgresql源码
./configure –prefix=/opt/pgsql-9.1.7 (这个路径是你想把数据库安装的路径)
执行的时候,看是否是解压包里面
这里写图片描述
执行 make (如果报gcc等包没有安装的话,yum install gcc* 等安装,再执行make)
这里写图片描述
执行make install
这里写图片描述
至此,完成postgresql的安装。进入/opt/pgsql-9.1.7目录可以看到安装后的postgresql的文件。
ls /opt/pgsql-9.1.7
这里写图片描述
建postgresql数据库
1) 创建postgres用户
useradd postgres
修改postgres密码
passwd postgres
这里写图片描述
2) 设置postgres用户的环境变量
切换到postgres用户
su - postgres
这里写图片描述
进入postgres的主目录
cd ~
这里写图片描述
编辑~/.bash_profile文件
vi ~/.bash_profile
设置以下的环境变量
export PGHOME=/opt/pgsql-9.1.7
export PGDATA=~/data 最好找个容量大的目录
这里写图片描述
保存,退出vi。执行以下命令,使环境变量生效
source ~/.bash_profile
这里写图片描述
手动启动关闭:
su - postgres 切换到该用户
pg_ctl start -D /usr/local/pgsql/data -o -i
pg_ctl stop -D /usr/local/pgsql/data -o -i
pg_ctl restart -D /usr/local/pgsql/data -o -i 可重新指定data路径
如果报错,往下面找,可能有解决方法
3) 初始化postgres数据库
initdb(初始化之后才能访问数据库)
这里写图片描述
这里写图片描述
至此,完成postgres数据库的初始化。
初始化的结果会在 /etc/rc.d/init.d/
通过查看vi postgresql 即可知道相关安装信息
prefix=/usr/local/pgsql
PGDATA=”/DATA/app/data”
PGLOG=”$PGDATA/serverlog”
4) 启动postgres数据库实例
pg_ctl start 启动
这里写图片描述
可以看到postgresql数据库实例已经启动,通过下面的命令可以查看系统中运行的postgres进程
ps -ef | grep postgres
这里写图片描述
5) 连接postgresql数据库
psql -h 127.0.0.1 -d postgres -U postgres
这里写图片描述
6) 停止postgresql数据库实例
pg_ctl stop
ps -ef | grep postgres这里写图片描述
可以看到已经没有postgres进程
3. 设置PostgreSQL开机自启动
PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下
这里写图片描述
linux文件即为linux系统上的启动脚本
1)修改linux文件属性,添加X属性
chmod a+x linux
2) 复制linux文件到/etc/init.d目录下,更名为postgresql
cp linux /etc/init.d/postgresql
3)修改/etc/init.d/postgresql文件的两个变量
prefix设置为postgresql的安装路径:/opt/pgsql-9.1.2
PGDATA设置为postgresql的数据目录路径:这里写图片描述
4) 执行service postgresql start,就可以启动PostgreSQL服务
service postgresql start
这里写图片描述
5)设置postgresql服务开机自启动
chkconfig –add postgresql
执行上面的命令,就可以实现postgresql服务的开机自启动。

如果有问题,可试试下一种方法
CentOS 6.3下PostgreSQL 的安装与配置

如果启动失败,报错
bash-4.1$ FATAL: data directory “/var/lib/pgsql/9.3/data” has group or world access
DETAIL: Permissions should be u=rwx (0700).

切换到 具有root权限的用户,
(1)先把文件夹 “/var/lib/pgsql/9.3/data” 的用户所属组,给postgres 用户:
进入/var/lib/pgsql/9.3目录
cd /var/lib/pgsql/9.3
chown -R postgres:postgres data
(2)把data目前的所有文件及子目录文件权限改成: rwx (0700)
chmod -R 0700 data
重启PostgreSQL 数据库,问题解决

如果需要制定某些ip能访问该数据库
修改/DATA/app/data/pg_hba.conf
增加一行类似
host all all ip.0/24 md5
如果需要所有人,都访问,如下
host all all 0.0.0.0/0 trust
重新载入 pg_hba.conf
参考自
http://francs3.blog.163.com/blog/static/405767272017578522550/?suggestedreading&wumii

$ pg_ctl reload
server signaled
之后查看日志 pg_log
如果这个不生效,然后重启数据库(要切换到数据库用户)
pg_ctl -m fast restart
完成.
pg_hba.conf 文件简析,参考
http://www.cnblogs.com/hiloves/archive/2011/08/20/2147043.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值