PostgreSQL安装分享
PostgreSQL自称是“世界上最先进的开源关系数据库”(The World's Most Advanced Open Source Relational Database)。关于她的发展历史,特性,优点等官网也有详细的介绍,中文的介绍网上一搜,也有很多。
本人也是no zuo no die 的菜鸟一枚,第一次接触PostgreSQL,就想弄弄她。
我分别在Windows(2019)和Linux(Ubuntu Server18)上安装,然后通过另一台电脑上pgadmin连接测试。
这里是官网 https://www.postgresql.org/
最新版本是2019-02-14发布的,直接点击Download进入下载页,有源码(Source code)和二进制包(Binary packages),二进制包有Windows版,Linux版等等。
先安装Widnows的,有多个版本可以选择,下面是各个版本对应Windows平台要求:
这里下载PostgreSQL11。
Windows安装:
Windows下的安装比较简单,1.安装路径选择默认(C:\Program Files\PostgreSQL\11),2.安装内容除了pgAdmin 4其他都选上(在另一台电脑上安装pgAdmin工具),3.数据目录默认是在安装目录下,考虑到数据占用空间大,最好不使用默认的,这里选择“D:\PostgreSQL\11\data”。4.输入管理员账户(postgres)密码,两次输入必须相同,5.服务端口使用默认(5432),如果端口被占用或其他原因可以更改,6。选择数据库簇,这里保持默认。所以配置完成之后会显示安装配置信息,然后下一步直到安装完成。
安装之后用SQL Shell(psql)测试,Server ,Database ,Port ,Username 都是由默认值,口令输入安装时设置的密码,输入密码是不回显的:
Server [localhost]:
Database [postgres]:
Port [5432]:
Username [postgres]:
用户 postgres 的口令:
psql (11.2)
输入 "help" 来获取帮助信息.
postgres=#
输入“\l”,l是L的小写,可以看到默认数据库有postgres,template0,template1三个。
Linux(Ubuntu 18)下安装:
Linux下安装使用包管理器apt。用命令搜索一下安装包:apt search postgresql-|grep postgresql-
发现只找到10版本的,按照官网的说法好像要建仓库文件,好吧,是英文的也按照一步步做:
1.sudo apt-get install curl ca-certificates 安装网络工具curl和CA证书维护工具ca-certificates,我查了一下系统中有了,就不安。
2.curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 最后的“-”短横线不能少,这一步是导入认证**。
3.在/etc/apt/sources.list.d/pgdg.list文件中加一行内容
“
deb http://apt.postgresql.org/pub/repos/apt/ YOUR_UBUNTU_VERSION_HERE-pgdg main”
YOUR_UBUNTU_VERSION_HERE替换成Ubuntu系统版本,可以用自动检测,完整命令:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
4.更新包并安装
sudo apt-get update sudo apt-get install postgresql-11
安装过程中有一个提示要下载文件120多MB(Windows的是170多),输入y表示同意。
然后就等待自动完成。
由于Linux下安装的超级管理账户的密码不知道,使用操作系统登录设置密码:
sudo -u postgres psql -u后面就是账户名,psql是psql命令工具,提示输入密码,这里的密码是操作系统的。
进入psql后输入\password然后回提示两次输入新密码,要保持一致。
使用pgAdmin 4工具远程登陆:
pgAdmin 工具是独立发布的,可以单独下载安装,工具是网页版的,过程省略。
打开pgAdmin之后可以看到多个面板分区,在Browser面板下右键点击Servers》Create》Server...弹出新增连接面板
在General下的Name里取一个名字,Connection下的Host输入PostgreSQL服务器的IP,Password里输入密码,其他保持默认,
点击Save,如果正常建立成功,否则会有错误提示。
PostgreSQL默认是只允许远程本机链接,所以还需要对PostgreSQ服务端进行配置。
PostgreSQL配置都是在配置文件中,没有配置工具。Windows下的配置文件在数据目录下,我这里的是D:\PostgreSQL\11\data,Linux下是在/etc/postgresql/11/main/。涉及的配置文件有两个:postgresql.conf和pg_hba.conf:
postgresql.conf中找到“listen_addresses ='' ”单引号内的值可以是localhost(只监听本地地址)或IP(监听特定IP)或*(监听所有IP),Widnwos下默认就是*,所以不用改,Linux下是localhost,将其改成*。
pg_hba.conf是配置授权可访问的地址和认证方式,每一行一条信息,#是注释符号。
信息格式为: TYPE DATABASE USER ADDRESS METHOD
依次为:连接类型,数据库,用户名,地址域,认证方式
连接类型:host,local(仅适用于Unix域套接字连接)
数据库:具体数据库名或all(all不包含postgres)
用户名:具体用户名或角色或all(all不包含postgres)
地址域:默认的配置只允许127.0.0.1/32
认证方式:认证方式有很多种,"trust", "reject", "md5", "password", "scram-sha-256", "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert".
我增加的是:host postgres postgres 192.168.0.0/24 md5
192.168.0.0/24 允许192.168.0.1~192.168.0.255都可以访问,也可配置成0.0.0.0/0允许所有IP
修改之后保存,重启服务就可以使用前面的pgAdmin连接管理。