【说明】
最近需要安装postgresql,直接网络安装倒是简单,但是安装目录不灵活,所以自己源码包安装了一下。发现自己对linux下的软件安装还是不理解,所以借postgresql的安装研究了一下源码包安装软件的方法,做一下记录。
【环境】
我使用的是lubuntu12.04,pos源码包是postgresql-9.3.2.tar.gz,地址:www.postgresql.org/ftp/source/v9.3.2/
一.下载源码包(地址如上),放入linux环境中,我放在/opt/下(root用户权限),解压
tar xvzf *******.tar.gz
二.解压后生成postgresql-9.3.2,进入此目录执行
./configure --prefix=/opt/postgres 这个命令用于检查系统是否有编译时所需的库以及版本是否满足,为下一步的编译做准备,这里同时也为安装指定目录,默认在/usr/local下,一般自己指定目录较好.
这里可能缺少包:apt-get install libreadline6-dev apt-get install zlib1g-dev (1是数字)
三.检查和准备通过后,开始执行
make 这是编译命令,然后执行安装命令make install,这里就已经安装完毕,下面进行配 置
四.配置postgresql。
1.创建postgres用户useradd -m -s /bin/bash -g root postgres(ubuntu创建用户比较麻烦,不这样的话会有问题,删除用户也比较麻烦),修改密码:passwd postgres
2.设置postgres用户的环境变量
su - postgres
cd ~进入postgres主目录
vi ~/.profile(这个文件名一般是这个,根据自己的版本决定)加入以下:
export PGHOME=/opt/postgres
export PGDATA=/home/postgres/data
export PATH=$PATH:$HOME/bin:$PGHOME/bin
保存退出后,source ~/.profile生效
3.初始化postgresql 在postgres主目录下执行
initdb (这里是上面配置data所在目录)
五.启动postgresql实例(与启动服务不同)
pg_ctl start /stop
六.查看进程:
Ps -e | grep postgresql
七.启动post服务
将源码目录下的/contrib/start-scripts/linux复制到/etc/init.d下更名为postgresql,加上读执行权限。修改此文件的变量如下两个:
# Installation prefix
prefix=/opt/postgres
# Data directory
PGDATA="/home/postgres/data"
执行启动命令即可:service postgresql start
八.开机启动
hkconfig --add posrtgresql
允许客户端远程访问
首先一下要修改的文件位置不固定,可根据文件名在根目录下搜索,应该是数据库初始化生成的,这里是在postgres主目录下的data中
1.监听任何地址访问,修改连接权限
#listen_addresses = ‘localhost’改为 listen_addresses = ‘*’
2.启用密码验证
#password_encryption = on改为password_encryption = on
3.可访问的用户ip段
root@server2-virtual-machine:~# vi /etc/postgresql/9.1/main/pg_hba.conf,并在文档末 尾加上以下内容
# to allow your client visiting postgresql server
host all all 0.0.0.0 0.0.0.0 md5
4.重启PostgreSQL数据库
root@server2-virtual-machine:~# /etc/init.d/postgresql restart