首页 > 代码库 > 解决pgsql不listen IP adderss问题
解决pgsql不listen IP adderss问题
一、安装(以root身份进行)
1、检出最新的postgresql的yum配置从http://yum.pgsqlrpms.org/reporpms/repoview/pgdg-centos.html
然后根据版本选择需要的rpm后执行下列命令
rpm -Uvh http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm
2、安装或者升级postgresql-libs
yum upgrade postgresql-libs
3、安装postgresql
yum install postgresql postgresql-server
4、初始化数据库以及启动服务
service postgresql initdb
service postgresql start
二、配置
在配置之前需将postgresql的端口号5432在iptables下开放。
开放方法参考:http://blog.csdn.net/ivan820819/archive/2009/02/03/3860163.aspx
yum安装postgresql后的安装路径为:/var/lib/pgsql下,主要配置文件在其data文件夹下,进入data文件夹
1、修改postgresql.conf文件
如果想让PostgreSQL监听整个网络的话,将listen_addresses前的#去掉,并将listen_addresses = ‘localhost‘改成listen_addresses = ‘*‘
[root@linux ~]# ps -ef|grep post
root 2138 1 0 Jun19 ? 00:00:00 /usr/libexec/postfix/master
postfix 2145 2138 0 Jun19 ? 00:00:00 qmgr -l -t fifo -u
postfix 4352 2138 0 00:16 ? 00:00:00 pickup -l -t fifo -u
postgres 6588 1 0 01:07 ? 00:00:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
postgres 6590 6588 0 01:07 ? 00:00:00 postgres: logger process
postgres 6592 6588 0 01:07 ? 00:00:00 postgres: writer process
postgres 6593 6588 0 01:07 ? 00:00:00 postgres: wal writer process
postgres 6594 6588 0 01:07 ? 00:00:00 postgres: autovacuum launcher process
postgres 6595 6588 0 01:07 ? 00:00:00 postgres: stats collector process
root 7330 2837 0 01:21 pts/0 00:00:00 grep post
[root@linux ~]# gvim /var/lib/pgsql/data/post
postgresql.conf postmaster.opts postmaster.pid
[root@linux ~]# gvim /var/lib/pgsql/data/postgresql.conf
# - Connection Settings -
listen_addresses = ‘localhost‘ # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to ‘localhost‘, ‘*‘ = all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
2、修改pg_hba.conf
这个文件最后有一个列表,它决定了分派了每一个用户的权限,以及认证方式。格式是“Type Database User Address Method”,要注意的是method最好写md5。
在列表后追加一行:host all all 192.168.1.0/24 password
3、修改postgres用户密码:passwd postgres
4、暂时将pg_hba.conf中,本机的认证方式改为trust,切换当前用户为postgres:su postgres
5、用psql登录PostgreSQL系统,“SELECT * FROM pg_shadow;”,发现这个表里的postgres这个用户根本还没有存储密码;于是,再“ALTER USER postgres PASSWORD ‘它的密码‘;
6、重启服务/etc/init.d/postgresql restart,连接成功。
参考
http://www.surfybeach.net/blog/archives/29
http://blog.csdn.net/nicky_zs/archive/2008/12/27/3618705.aspx
https://public.commandprompt.com/projects/pgcore/wiki