如何设置PostgreSQL远程访问
转载请注明来源:http://blog.csdn.net/caoshiying PostgreSQL开启远程访问主要有两个配置环节,一个是允许远程主机登录,二是创建可远程访问的用户。大部分人因配置有问题而无法远程访问,而把postgres用户改为可远程访问的不可取的做法。这里说一下我的做法。 基本的PostgreSQL安装配置的文档请看文章:《CentOS 6.8操作系统安装PostGIS笔记》。下面首先说第一个配置环节。 1.1.允许远程主机登录打开postgresql的服务启动配置文件,一般情况下在这里: /etc/postgresql/9.3/main/postgres.conf 找到listen_address 配置节,把 local 改成 * 。如果 listen_address 被注释掉了,那么就要取消注释。 打开postgresql的远程访问配置文件,一般情况下在这里: /etc/postgresql/9.3/main/pg_hba.conf 注意PostgreSQL版本号。打开没有注释掉的代码 host all all 127.0.0.1/32 md5 把它改成: host all all 0.0.0.0/0 md5 保存后运行命令: service postgresql restart 使配置生效 1.2.创建可远程访问的用户再次提一下,把postgresql用户改为可远程访问的做法是不可取的。登录SSH登录到数据库所在主机 ssh admin@192.168.1.7 输入密码,登录后运行: sudo su - postgres 再次输入密码后转到了postgres 用户,运行: psql 进入了数据库环境,下面创建用户: CREATE USER test CREATEDB; 注意分号。CREATEDB 是权限,还有其它权限,比如 SUPERUSER 、 CREATEUSER 等。一般情况下 CREATEDB 是最安全的做法。因为这个 test 用户的权限被限制在很小范围。 修改用户密码 ALTER USER test PASSWORD 'test123'; 然后退出PSQL ,退出 SUDO ,退出 SSH ,回到远程主机。 q exit exit exit 在远程主机运行: psql -h 192.168.1.7 -U test -W 输入密码,进入了PSQL 。创建一个数据库试试看: CREATE DATABASE test OWNDER test; 成功了。 1.3.PSQL常用命令du:列出当前所有的用户信息 l: 列出当前所有的数据库信息 q: 退出 password username:修改指定的user的密码 dn:查看shema i:命令从指定的文件中读取命令 1.4.常见问题1.4.1.psql: FATAL: Ident authentication failed for user "mypguser"请编辑你的pg_hba.conf,这个文件一般位于/etc/postgresql/X.Y/main/pg_hba.conf,X.Y是你的PostgreSQL的版本号,将下面行的peer改为trust: local all all trust # replace ident or peer with trust 1.4.2.psql: FATAL: Peer authentication failed for user "mypguser"请仍然修改pg_hba.conf文件,该下面行的peer为md5: local all all md5 # replace peer with md5 完成上面的修改后请重新加载postgresql : /etc/init.d/postgresql reload (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |