前言
最近需要将数据库从MysqL迁移到Postgresql上来,故学习了下postgres的安装,写本文记录下.
@Author duangr
@Websitehttp://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-ivhpostgresql93-libs-9.3.1-1PGDG.rhel6.x86_64.rpm rpm-ivhpostgresql93-9.3.1-1PGDG.rhel6.x86_64.rpm rpm-ivhpostgresql93-server-9.3.1-1PGDG.rhel6.x86_64.rpm
再初始化服务端 (若只安装客户端可以忽略此步)
servicepostgresql-9.3initdb
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
#TYPEDATABASEUSERADDRESSMETHOD hostallall192.168.56.0/24md5
上面配置的含义是: 允许56网段的主机连接过来,同时需要密码校验,密码是md5加密传输
附pg_hba.conf文件的简单说明
TYPE: local:本地unix(Unix-domainsocket) host:TCP/IP(eitheraplainoRSSL-encryptedTCP/IPsocket) hostssl:TCP/IPssl(SSL-encryptedTCP/IPsocket) hostnossl:TCP/IPnossl(plainTCP/IPsocket) 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_ctlreload
7. 基本操作
起停服务
servicepostgresql-9.3start servicepostgresql-9.3stop
开机自动启动
chkconfigpostgresql-9.3on chkconfig--list|greppostgresql
客户端登陆
#su-postgres $psql psql(9.3.1) 输入"help"来获取帮助信息. postgres=#