ubuntu18下安装postgresql
发布时间
阅读量:
阅读量
ubuntu下安装postgresql
此文介绍在ubuntu18下安装较新版本的postgresql服务,及配置远程连接。
配置软件源
先检查可安装的版本
apt show postgresql
ubuntu默认软件源里的postgresql会比较老一些,如果默认源中的版本合适,则可跳过此步。
# 获取 GPG 密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# 添加源
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
# 更新一下
sudo apt update
再重复下最开始的命令就可以看到最新版本了。如下
Package: postgresql
Version: 13+226.pgdg18.04+1
Priority: optional
Section: database
Source: postgresql-common (226.pgdg18.04+1)
安装与运行
安装命令为
sudo apt install postgresql postgresql-contrib
如果一切顺利,则可以用下面的命令来操作postgresql服务。启动、关闭、重启或查看状态:
service postgresql start\stop\restart\status
用户管理
与mysql不同的是,postgresql需要使用linux用户来登录服务,默认超级用户为postgres。你需要切换到此用户上再进行操作。
# 切换用户
sudo su postgres
# 进行交互式命令行,类似于mysql的用户登录
psql
一切顺利,将会出现一些提示,如
psql (13.4 (Ubuntu 13.4-1.pgdg18.04+1))
Type "help" for help.
postgres=#
可以输入 \q 以退出,输入 \? 获取帮助
用户创建
在上一步进入的命令行环境中,可以对用户进行操作。
# 创建用户
CREATE USER user01 WITH PASSWORD 'PASSWORD';
# 给用户创建一个数据库
CREATE DATABASE test01 OWNER user01;
# 将此库所有权限赋予用户
GRANT ALL PRIVILEGES ON DATABASE test01 TO user01;
在外网环境下,应当创建单独用户负责某些库的管理,不应当把超级用户放开访问。
允许外网访问
postgresql比mysql要麻烦一点。
修改配置文件,允许所有IP访问。配置文件通常是/etc/postgresql/13/main/postgresql.conf,根据安装的版本变下中间的路径。
listen_addresses = '*'
改完重启,就可以被其他服务器访问了,但无法使用任何用户登录。
此需要修改上述目录下的pg_hba.conf文件。
配置此文件需要先了解下面五个参数:
- TYPE:表示主机类型。
local表示是unix-domain的socket连接,host是TCP/IP socket ,hostssl是SSL加密的TCP/IP socket - DATABASE :表示数据库名称。值可能为:
all,sameuser,samerole,replication,数据库名称,或者多个 数据库名称用,, 注意ALL不匹配 replication - USER :表示用户名称。值可能为:
all,一个用户名,一组用户名,多个用户时可以用,隔开 - ADDRESS:该参数可以为
主机名称或者IP/32(IPV4)或IP/128(IPV6),主机 名称以.开头,samehost或samenet匹配任意Ip地址 - METHOD:验证方式。该值可以为
trust,reject,md5,password,scram-sha-256,gss,sspi,ident,peer,pam,ldap,radiusorcert。trust表示不需要密码就可以连接。
所以开放一个数据库的配置如下:
# TYPE DATABASE USER ADDRESS METHOD
host db01 user01 0.0.0.0/0 md5
重启过后应当可以远程访问了。
其他
navicat12对postgresql支持似乎有点问题,无法查看已存在的数据表,无论是否为新增的。
升级版本或换用其他产品。
全部评论 (0)
还没有任何评论哟~
