首先介绍下我的开发环境,Win7下安装VMware Player虚拟机(比VMware更轻量级,比较好用),虚拟机中安装的openSUSE-13.1-DVD-i586操作系统。后面的所有实验都是通过SecureCRT客户端连接上openSUSE进行操作,如果出现连接不上的情况,可以参考我的另一篇博文
http://blog.chinaunix.net/uid-27213819-id-4451595.html。
PG安装步骤:
1、下载pg源码。
2、解压后进入源码目录,运行./configure进行编译前的配置。通过./configure --help可以查看帮助,这里我用--prefix指定了安装路径。
但是,我这里遇到了一个错误提示,
提示说readline这个依赖包没有找到,解决办法有两个,一是配置时加上--without-readline选项,二是手动安装需要的包。我第一次为了图方便,使用了--without-readline选项,结果在敲SQL语句的时候发现键盘上的上下左右键都失灵了,很是不方便,所以这里强烈建议不到万不得已不要使用--with-readline。
如果手动的去下载安装readline(readline-devel)包会发现很麻烦,因为有很多的依赖关系,我们可以利用openSUSE自带的YaST软件管理工具进行安装。安装方法如下:
① 在操作系统的开始菜单,Computer中打开YaST,然后单击Software栏的Software Management。
② 搜索readline,选上readline-devel,单击accept安装即可。
再次运行./configure --prefix=/opt/pgsql/,问题解决。(如果有其他依赖包需要安装,可以参照前面的步骤)
3、gmake world 这会编译所有的源文件,包括contrib文件夹下的工具包。
4、gmake install-world 安装所有工具包括文档,加上world省去了很多麻烦。
5、我这里在adamhu这个用户下进行数据库的初始化,首先修改adamhu用户的bashrc文件,添加下面内容
export PGPORT="1989" //PG连接端口,我改成了1989
export PGDATA="/opt/pgsql/data" //PG数据存放路径
export LANG="en_US.utf8" //语言环境
export PGHOME="/opt/pgsql" //PG安装目录
export LD_LIBRARY_PATH="$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH"
export DATE=`date+"%Y%m%d%H%M"`
export PATH="$PGHOME/bin:$PATH:."
export MANPATH="$PGHOME/share/man:$MANPATH"
export PGUSER="adamhu" //默认的登录用户
export PGHOST="localhost"
alias rm="rm -i"
alias ll="ls -lh"
export PGDATABASE="postgres" //默认连接的数据库
修改环境变量,重启系统后生效。(或者直接在终端中export一次也可以,这样就省得重启了)
6、用root用户在PGHOME下建立data文件夹,并将所有者改为adamhu,作为PG的数据存放文件夹,当然你也可以放在任何你想要的地方。
7、adamhu用户下,进入PGHOME的bin目录,用initdb来初始化数据库集簇。initdb --help可以查看帮助。
8、启动PG数据库,pg_ctl start即可。
9、连接数据库,psql即可连接上,因为我们在adamhu的bash文件中设置了默认值,但还是推荐连接时用完整的psql命令。
最后,如果需要远程连接登录,我们首先要修改系统防火墙,保证系统允许远程连接(openSUSE默认是不允许远程连接的),同时修改pg_hba.conf和postgresql.conf文件。
pg_hba.conf: 添加 host all all 0.0.0.0/0 password
postgresql.conf: 设置监听端口和IP,一般设置listen_address="*"
补充: 登录数据库 psql -h localhost -U postgre -w -d postgres -p1989
在初始化数据库集簇时会设置一个超级用户,如果出现‘role username doesn't exist’的提示,可以先用超级用户登录,createuser添加新用户再登录。
阅读(7819) | 评论(0) | 转发(1) |