首页 > Unix > FreeBSD系统下源码编译安装PostgreSQL数据库

FreeBSD系统下源码编译安装PostgreSQL数据库

2013年4月21日 发表评论 阅读评论
实验环境:

操作系统:freebsd 8.0-RELEASE
CPU构架:amd64
数据库版本:postgresql-8.4.5

1. 下载PostgreSQL安装包:

在Web浏览器中打开http://www.postgresql.org/ftp/source/,找到要下载的源码包URL地址,然后执行如下命令:

  1. # cd /tmp 
  2. # fetch http://www.master.postgresql.org/redir/391/f/source/v8.4.5/postgresql-8.4.5.tar.bz2

2. 编译安装PostgreSQL:
  1. # tar -jxvf postgresql-8.4.5.tar.bz2 
  2. # cd postgresql-8.4.5 
  3. # ./configure --prefix=/usr/local/PostgreSQL 
  4. # make && make install 
3. 初始化PostgreSQL数据库:
  1. # pw user add postgresql -s /bin/csh 
  2. # passwd postgresql 
  3. # mkdir -p /data 
  4. # chown postgresql /data/ 
  5. # su postgresql 
  6. # /usr/local/PostgreSQL/bin/initdb -D /database/ 

注: 在初始化PostgreSQL数据库时,为了以后的维护方便,建议将数据文件建立在目录下,如我这里的/data。数据库文件就在此目录下的base里,如/data/base/下。

4. 启动数据库:
  1. # nohup /usr/local/PostgreSQL/bin/postgres -D /database &  //启动数据库并后台运行 
  2. # /usr/local/PostgreSQL/bin/psql -l //列出所有数据库 
  3. # /usr/local/PostgreSQL/bin/psql postgres //登录到postgres数据库 
  4. # /usr/local/PostgreSQL/bin/createdb aiezu //建立database 
5. 疑难解答:

①. 问: 在"make && make install"时报以下错误:

  1. You must use GNU make to build PostgreSQL. 
  2. *** Error code 1 

答:在make时会用到gmake,所以请先用ports安装gmake,具体操作请参考相关文章。

②. 问: 在执行fetch命令时报如下错误:

  1. fetch: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/make-3.81.tar.bz2: No address record 
  2. => Couldn't fetch it - please try to retrieve this 
  3. => port manually into /usr/ports/distfiles/ and try again. 
  4. *** Error code 1 

答:请检查FreeBSD是否正常连接网络,是否设置了IP地址,默认路由,DNS服务器。

③. 问:执行/usr/local/PostgreSQL/bin/psql命令时:

  1. psql: FATAL:  database "postgresql" does not exist 

答: 引起此错误的原因是psql后面没有加数据库名时,FreeBSD默认会以$USER为数据库名进行连接。所以请在psql后面加上存在的数据库名。

④. 问: 执行/usr/local/PostgreSQL/bin/psql命令时:

  1. psql: could not connect to server: Connection refused  
  2. Is the server running locally and accepting  
  3. connections on unix domain socket "/tmp/.s.PGSQL.5432"? 

答: 请确认postgresql数据库服务是否成功启动。

分类: Unix 标签: ,