postgresql安装及常见错误处理
postgresql安装及常见错误处理一、安装说明最近,由于业务需要,我抛弃了一直使用的mysql数据库,开始转向postgresql数据库,至于为什么选择postgresql?肯定是postgresql比mysql更强大,对于postgresql的优点,就不在此赘述,大家可以google下。 本例中安装的postgresql版本为9.3.2,安装方式为源码安装,安装环境为Centos-6.4-x86_64。 二、安装1.下载postgresql: 本例中安装的方式为源码安装,读者可以到官方网址:http://www.postgresql.org/ftp/source/v9.3.2/进行下载 2.解压文件: tar -zxvfpostgresql-9.3.2.tar.gz 3.进入解压目录并配置参数 进入解压目录:cdpostgresql-9.3.2 创建安装目录:sudo mkdir /opt/postgresql-9.3.2(依你习惯而定) 配置安装参数:./configure --prefix=/opt/postgresql-9.3.2 注:在这一步,相信很多同学会发生一些错误,如果发生了,请参看下面"三、常见错误说明"部分来解决她。 4.编译: make 5.安装: sudo make install 6.创建用户组和用户: 创建用户组:sudo groupadd postgresql 创建用户:sudo useradd -gpostgresqlpostgresql 为了方便管理,在此创建了postgresql用户组以及postgresql用户,以后可以通过postgresql用户来管理postgresql数据库。
7.创建数据库库文件存储目录并给postgresql用户赋予权限: 进入数据库安装目录:[zhu@zhu postgresql-9.3.2]$cd/opt/postgresql-9.3.2 创建data目录:[zhu@zhu postgresql-9.3.2]$ sudomkdir data 给postgresql用户赋予权限:sudo chownpostgresql.postgresql data 8.添加环境变量:
9.初始化数据库目录: 首先,要切换用户:supostgresql 如果没有配置密码,先给postgresql配置密码:sudo passwd postgresql 初始化数据:[postgres@zhu postgresql-9.3.2]bin/initdb -D data 10.启动数据库: 这里通过postmaster脚本启动:postgresql安装及常见错误处理 [postgres@zhu postgresql-9.3.2]bin/postmaster -D /opt/postgresql-9.3.2/data 启动成功后,可以看到如下提示:
但目前位置,该数据库只能允许本地访问,如果运行其他用户访问的话还需继续进行如下配置: 10.配置监听地址和端口: [postgres@zhu postgresql-9.3.2]vi data/postgresql.conf 也就是将注释号"#"去掉,并把"127.0.0.1"改为"*"
(1).其中,"trust"和"password"为postgresql数据库登陆验证的方式,"trust"表示信任,即不需要输入密码(即使有密码),"password"表示需 要输入密码。
(2).host all all 127.0.0.1/31 trust表示本地连接数据库不需要输入密码(即使有密码,设为trust后就不需要密码)
(3).host all all 0.0.0.0/0 所有主机连接数据库需要输入密码(如果有密码)
(4).当然,这两个综合后表现的结果就是:对于本机链接表示信任(不需要输入密码),对于非本机链接需要输入密码
12.修改防火墙,开放5432端口:
sudo vim /etc/sysconfig/iptables 加上:-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT 重启防火墙:sudo service iptables restart 12.在postgresql数据库中为之前创建的postgresql用户增加密码: 如果你的postgresql数据库没有启动,请用$POSTGRESQL_HOME/bin/postmaster -D /opt/postgresql-9.3.2/data命令或者用下面的第13部分介绍的命令。 通过psql命令进入postgresql数据库的控制台,然后执行: ALTER USER postgresql PASSWORD '它的密码'; 如果输入"psql"出现如下异常: psql: FATAL: database "postgresql" does not exist 则说明数据库中不存在postgresql数据库,可以换个初始数据库连接下:
[postgresql@bigdata-jobtrack ~]$
psql template1
psql (9.3.2)
Type "help" for help.
修改postgres用户密码:
template1=#
ALTER USER postgresql PASSWORD '123456';
ERROR: role "postgres" does not exist
如不存在
postgresql 用户则则新建该用户
template1=#
CREATE USER postgresql WITH PASSWORD '123456'
注:此处的“
postgresql”用户为数据库用户.
这时,posrgresql用户就可以作为数据库的使用用户了,可以打开一个postgresql客户端,如navicat,尝试连接一下。
13.关闭postgresql数据库并重新启动,使更改后的配置生效: 下面是通过postgresql的pg_ctl工具进行操作: 关闭postgresql数据库:pg_ctl stop -m fast 启动postgresql数据库:pg_ctl start 这时,你可以通过远程主机登陆系统试一下。 至此,一个完整的postgresql数据库便安装完毕了,你可以通过远程主机以postgresql用户身份输入密码登陆postgresql了! postgresql安装及常见错误处理 三、常见错误说明:1.安装常见错误: (1). configure: error: readline library notfound 如果出现以上错误,说明你的系统缺少readline库,这时输入: rpm -qa | grep readline 如果提示:readline-6.0-4.el6.x86_64 那么,你的电脑缺少readline-devel库,你只要安装一下readline-devel就行了: (2).
checking for inflate in -lz... no
configure: error: zlib library not found
If you have zlib already installed,see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-zlib to disable zlib support.
出现这种错误,说明你的系统缺少zlib库,输入:
rpm -qa | grep zlib,如果出现如下提示:
zlib-1.2.3-29.el6.x86_64
zlib-1.2.3-29.el6.i686
jzlib-1.0.7-7.5.el6.x86_64
则说明,你的电脑缺少
zlib-devel库,安装一下即可:
yum install zlib-devel;
这时,再rpm -aq | grep zlib
zlib-1.2.3-29.el6.x86_64
zlib-1.2.3-29.el6.i686
jzlib-1.0.7-7.5.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
说明
zlib-devel安装成功。如果你的系统以上库均缺失,则要全部安装。
2.数据库连接常见错误: (1). could not connect to server: Connection refused (0x0000274D/10061)
如果出现以上错误提示,一般是发生在远程主机连接的情况下。出现错误的原因5432端口号被拒绝连接或者postgresql数据库未监听本机以外的其他主机的连接请求。这时,你要分别检查如下两个步骤的操作正确与否: a.让防火墙开放5432端口: sudo vim /etc/sysconfig/iptables 加上:-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT 重启防火墙:sudo service iptables restart b.修改$POSTGRESQL_HOME/ data/postgresql.conf配置文件:修改为如下配置: (2).如果从本地访问数据库,出现如下提示: FATAL:no pg-hba.conf entry for host "xxxxxxxx",user "xxx" database "xxxxx"...... 则说明,本地访问被设置了非trust模式,请检查$POSTGRESQL_HOME/data/pg-hba.conf配置文件是否有如下配置信息: host all all 127.0.0.1/32 trust 其中,关于此配置信息的详细说明可以回看二.11 postgresql安装及常见错误处理如果要参考关于postgresql的使用命令,请查看:http://www.52php.cn/article/p-guvcifab-bek.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |