postgresql安装及常见错误处理 一、安装说明 最近,由于业务需要,我抛弃了一直使用的mysql数据库,开始转向postgresql数据库,至于为什么选择postgresql?肯定是postgresql比mysql更强大,对于postgresql的优点,就不在此赘述,大家可以google下。 本例中安
最近,由于业务需要,我抛弃了一直使用的mysql数据库,开始转向postgresql数据库,至于为什么选择postgresql?肯定是postgresql比mysql更强大,对于postgresql的优点,就不在此赘述,大家可以google下。
本例中安装的postgresql版本为9.3.2,安装环境为Centos-6.4-x64_64。
1.下载postgresql:
本例中安装的方式为源码安装,读者可以到官方网址:http://www.postgresql.org/ftp/source/v9.3.2/进行下载
2.解压文件:
tar -zxvf postgresql-9.3.2.tar.gz
3.进入解压目录并配置参数
进入解压目录:cd postgresql-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 group add postgresql
创建用户:sudo useradd -gpostgresql postgresql
为了方便管理,在此创建了postgresql用户组以及postgresql用户,以后可以通过postgresql用户来管理postgresql数据库。
7.创建数据库库文件存储目录并给postgresql用户赋予权限:
进入数据库安装目录:[postgres@zhu postgresql-9.3.2]$ cd /opt/postgresql-9.3.2
创建data目录:[postgres@zhu postgresql-9.3.2]$ sudo mkdir data
给postgresql用户赋予权限:sudo chown postgresql.postgresql data
8.添加环境变量:
9.初始化数据库目录:
首先,要切换用户:su postgresql
初始化数据:[postgres@zhu postgresql-9.3.2] bin/initdb -D data
10.启动数据库:
这里通过postmaster脚本启动:postgresql安装及常见错误处理
[postgres@zhu postgresql-9.3.2] bin/postmaster -D /usr/local/pgsql/data
启动成功后,可以看到如下提示:
这是可以重新打开一个端口,以postgresql用户身份进入测试一下。
但目前位置,该数据库只能允许本地访问,如果运行其他用户访问的话还需继续进行如下配置:
10.配置监听地址和端口:
[postgres@zhu postgresql-9.3.2] vi data/postgresql.conf
修改为如下配置:
listen_addresses = '*'
port = 5432
也就是将注释号"#"去掉,并把"127.0.0.1"改为"*"
11、允许远程主机连接:
[postgres@zhu postgresql-9.3.2] vi data/pg_hba.conf
天加如下配置host all all 0.0.0.0/0 trust,参考如下:
注意:
sudo vim /etc/sysconfig/iptables
加上:-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT
重启防火墙:sudo service iptables restart
12.在postgresql数据库中为之前创建的postgresql用户增加密码:
通过psql命令进入postgresql数据库的控制台,然后执行:
ALTER USER postgres PASSWORD '它的密码';
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
If you have readline already installed, see config.log for detailson the
failure. It is possible the compiler isnt lookingin the proper directory.
Use --without-readline to disable readlinesupport.
如果出现以上错误,说明你的系统缺少readline库,这时输入:
rpm -qa | grep readline
如果提示:readline-6.0-4.el6.x86_64
那么,你的电脑缺少readline-devel库,你只要安装一下readline-devel就行了:
yum -y install readline-devel
再次rpm -qa | grep readline
提示:
readline-devel-6.0-4.el6.x86_64
readline-6.0-4.el6.x86_64
说明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.2.数据库连接常见错误:
(1).
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host "95.110.201.74" and accepting
TCP/IP connections on port 5300?"
如果出现以上错误提示,一般是发生在远程主机连接的情况下。出现错误的原因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配置文件:修改为如下配置:
listen_addresses = '*'
port = 5432
(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安装及常见错误处理