前言
最近需要将数据库从MySql迁移到PostgreSQL上来,故学习了下postgres的安装,写本文记录下.
@Author duangr
@Website http://my.oschina.net/duangr/blog/181914
1.相关环境
Host Name |
IP | OS | Arch |
duangr-1 |
192.168.56.10 | CentOS 6.4 | x86_64 |
2.部署规划
项 | 值 |
postgresql |
9.3.1 |
程序安装目录 |
/usr/pgsql-9.3 |
数据文件目录 |
/var/lib/pgsql |
3.代码获取
4.前提依赖
5.编译安装
先安装rpm
rpm -ivh postgresql93-libs-9.3.1-1PGDG.rhel6.x86_64.rpm
rpm -ivh postgresql93-9.3.1-1PGDG.rhel6.x86_64.rpm
rpm -ivh postgresql93-server-9.3.1-1PGDG.rhel6.x86_64.rpm
再初始化服务端 (若只安装客户端可以忽略此步)
service postgresql-9.3 initdb
6.修改配置
6.1 调整server的监听地址
vi /var/lib/pgsql/9.3/data/postgresql.conf
listen_addresses = '*'
6.2 调整可连接主机权限
vi /var/lib/pgsql/9.3/data/pg_hba.conf
增加如下内容
# TYPE DATABASE USER ADDRESS METHOD
host all all 192.168.56.0/24 md5
上面配置的含义是: 允许56网段的主机连接过来,同时需要密码校验,密码是md5加密传输
附pg_hba.conf文件的简单说明
TYPE:
local: 本地unix (Unix-domain socket)
host: TCP/IP (either a plain or SSL-encrypted TCP/IP socket)
hostssl: TCP/IP ssl (SSL-encrypted TCP/IP socket)
hostnossl: TCP/IP no ssl (plain TCP/IP socket)
DATABASE:
${db_name}: 具体的db名称,多个使用逗号分隔
sameuser:
samerole:
replication:
all: 其他情况
USER:
${db_user_name}: db中用户名称(即可登陆的角色名称)
all: 其他情况
ADDRESS:
.${host_name} : 主机名,以'.'作为前缀
${ip}/${netmask} : 地址+掩码
METHOD:
trust : 信任
reject : 拒绝
md5 : (首选)密码md5加密传输方式
password : (危险)密码明文传输方式
ident : 对应pg_ident.conf内用户映射配置
peer :
更多说明见官方文档:
http://www.postgresql.org/docs/9.3/static/auth-methods.html
6.3 重载配置
/usr/pgsql-9.3/bin/pg_ctl reload
7. 基本操作
起停服务
service postgresql-9.3 start
service postgresql-9.3 stop
开机自动启动
chkconfig postgresql-9.3 on
chkconfig --list|grep postgresql
客户端登陆
# su - postgres
$ psql
psql (9.3.1)
输入 "help" 来获取帮助信息.
postgres=#
8. 相关链接
来源:oschina
链接:https://my.oschina.net/u/1189023/blog/181914