安装前检查
检查是否安装了旧版本的postgre:
dpkg -l | grep postgresql
如果已经安装,需要先进行卸载。
安装postgresql
添加postgre源
sudo touch /etc/apt/sources.list.d/pgdb.list
sudo vim /etc/apt/sources.list.d/pgdb.list
将下面的代码复制到pgdb.list中:
deb https://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main
执行以下命令添加postgresql安装包密钥:
sudo wget --quiet -O - https://postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
接下来进行安装:
sudo apt-get update
sudo apt-get install postgresql-9.4
安装结果(共五个组件)
简单使用
创建数据库和角色
通过创建一个数据库和对应的角色来了解postgresql的用法。
首先来了解一下基本用法,将用户切换到postgres(postgres是postgresql在安装的过程中创建的系统用户)
sudo -i -u postgres
创建数据库dbuser
createdb testdb
创建角色,通过postgressql的客户端来实现:
psql
回车后进入postgressql的客户端
创建用户:
create user dbuser; // 这个命令创建的用户默认具有登录权限
为dbuser设置密码:
\password dbuser; // 按照提示输入密码
将数据库的所有者设置为dbuser:
alter database testdb owner to dbuser;
\q退出当前postgresql的登录,使用下面命令重新登录:
psql -d testdb -U dbuser -h 127.0.0.1 -W
输入密码后:
配置远程访问:
此时只能本机访问postgre数据库,下面配置远程访问:
1. 如果服务器启用了防火墙,需在防火墙上开启5432端口
2. 修改PostgreSQL的配置文件postgresql.conf、pg_hba.conf
linux文件路径位置:/etc/postgresql/9.4/main
修改postgresql.conf
修改CONNECTIONS AND AUTHENTICATION段的内容为:
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
在pg_hba.conf中做如下修改:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5 #(新增行)
# IPv6 local connections:
host all all ::1/128 md5
新增行一些说明:
1. PostgreSQL是区分大小写的,在配置DATABASE时需注意
2. ADDRESS: 格式为 IP/数值
数值取值范围为:0,8,16,24,32,即表示掩码bit的个数;
例如:
32 -> 192.168.1.1/32 表示必须是来自这个IP地址的访问才合法;
24 -> 192.168.1.0/24 表示只要来自192.168.1.0 ~ 192.168.1.255的都合法;
16 -> 192.168.0.0/16 表示只要来自192.168.0.0 ~ 192.168.255.255的都合法;
8 -> 192.0.0.0/16 表示只要来自192.0.0.0 ~ 192.255.255.255的都合法;
0 -> 0.0.0.0/0 表示全部IP地址都合法,/左边的IP地址随便了只要是合法的IP地址即可;
重启postgresql 服务
service postgresql restart