如何在ubuntu环境下安装postgresql并配置远程访问

1.更新ubuntu包

sudo apt-get update
sudo apt-get upgrade

2.安装官方源

# 创建文件存储库配置
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
# 导入存储库签名密钥
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# 更新包列表
sudo apt-get update
# 安装最新版本的PostgreSQL
sudo apt-get -y install postgresql

以上命令成功运行后,证明postgresql已经正常安装,安装完成以后会自动启动postgresql的服务。可通过以下信息查看postgresql的信息

# 查看postgresql版本
sudo -u postgres psql -c "SELECT version();"
# 查看postgresql服务是否启动
service postgresql status

3.进行数据库配置

3.1 创建用户账号密码

在ubuntu上PostgreSQL数据库以后,会自动创建一个计算机用户postgre,以下是基于该账户进行操作的。

运行以下命令,使用postgre用户登录postgresql

# 切换用户
sudo su postgres
# 进入交互界面
psql

进行postgresql的交互界面后,可以通过运行以下信息进行用户创建

-- 创建不带密码的账号-root
create role root;
-- 创建带密码的账号-root
create user root with 'root123';
-- 显示所有用户,并查看是否创建成功
\du
-- 更改postgresql密码,如修改root账号的密码
alter user root with password 'root123#';
3.2 创建数据库
-- 创建数据库(test)
create database test;
-- 删除数据库(test)
drop database test;
-- 查询所有数据库
\l
-- 切换数据库test
\c test
3.3 创建schema
-- 创建schema(ods),以下写法均可
 create schema ods;
 create schema if not exists ods;
-- 为某个用户(root2)创建market
 create schema market authorization roo2;
-- 查看当前数据库下的所有schema
select * from information_schema.schemata;
-- 删除schema(ods)
 drop schema if exists ods;
3.4 用户权限授权

创建完用户密码以后,可以用以下命令对用户进行权限授予

-- 给用户root赋予超级用户权限
alter user root with superuser;
-- 给用户root2赋予普通权限
alter user  root2 with privileges; 
-- 把数据库的所有权限给予用户root
grant all privileges on database test to root;
-- 把某schema下(ods)的所有表(test用户下)的所有权限给予用户root2
grant all on all tables in schema ods to root2;
-- 把某张表(test_table)的所有权限给予用户root2
grant all on test_table to root2;
-- 把某张表(test_table)的查询权限给予用户root2
grant select on table test_table to root2;
-- 撤销用户root2的某个数据库(test)权限;
revoke all on database test from root2;
-- 撤销用户root2某个schema(ods)下所有表的修改(update)权限;
revoke update on all tables in schema ods from root2;
-- 撤销用户root2某张表(test_table)的所有权限
revoke privileges on test_table from root2;
-- 将某张表(test_table)的所有者给root2
alter table test_table owner to root2;
-- 允许用户(root)登录
ALTER ROLE root WITH LOGIN;
-- 禁止用户(root)登录
ALTER ROLE root WITH NOLOGIN;

其他常用的一些授权如下:

-- 设置user1为user的子用户
grant user1 to user;
-- 为user1增加schema增加使用权,schema名称为ods
GRANT usage ON SCHEMA ods TO user1;
3.5 配置远程访问

由于postgresql在安装时会默认添加一个用户名为postgres的ubuntu系统用户,因此要先用其他账户删除postgres用户的密码,再配置属于自己的密码。

# 删除postgres用户的密码
sudo passwd -d postgres
# 设置postgres用户的密码
sudo -u postgres passwd

配置完密码后,编辑/etc/postgresq/12/main/postgresql.conf文件

sudo vim /etc/postgresql/12/main/postgresql.conf

在上述配置文件postgresql.conf中添加以下内容:

listen_addresses = '*' 
password_encryption = scram-sha-256

运行以下命令,编辑/etc/postgresq/12/main/pg_hba.conf文件

 sudo vim /etc/postgresql/14/main/pg_hba.conf 

在pg_hba.conf文件末尾追加以下内容:

host    all             all             0.0.0.0/0               scram-sha-256

添加完成后,保存退出,然后重启postgresql 服务。

sudo service postgresql restart
3.6使用Navicat链接

运用上述获得的信息,成功链接postgresql数据库。

3.7 卸载Navicat
# 移除postgresql
sudo apt-get --purge remove postgresql\*
# 移除配置信息
sudo rm -r /etc/postgresql/
sudo rm -r /etc/postgresql-common/
sudo rm -r /var/lib/postgresql/
sudo userdel -r postgres
sudo groupdel postgres
  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
安装 PostgreSQLUbuntu 22.04 上的步骤如下: 1. 打开终端并运行命令 `sudo apt update` 更新软件包列表。 2. 运行命令 `sudo apt install postgresql postgresql-contrib` 安装 PostgreSQL 和相关的扩展包。 3. 为了允许远程访问 PostgreSQL 服务器,打开配置文件 `postgresql.conf`。可以使用 `sudo vim /etc/postgresql/14/main/postgresql.conf` 命令来编辑该文件。 4. 在 `postgresql.conf` 文件的 `CONNECTIONS AND AUTHENTICATION` 部分,添加 `listen_addresses = '*'`,以允许来自任何 IP 地址的连接。 5. 重新启动 PostgreSQL 服务使修改生效,可以使用命令 `sudo service postgresql restart`。 6. 确认修改的效果,可以使用命令 `ss -nlt | grep 5432` 检查 PostgreSQL 是否在监听 5432 端口。 7. 编辑 `pg_hba.conf` 文件,配置服务器接受远程连接。可以使用命令 `sudo vi /etc/postgresql/14/main/pg_hba.conf` 来编辑该文件。在文件中添加一行,例如 `host all all 0.0.0.0/0 md5` 表示接受来自任何 IP 地址的连接。 8. 重启 PostgreSQL 服务使修改生效。 9. 如果服务器有防火墙,需要打开 5432 端口以允许远程访问。 10. 如果需要开启日志,可以编辑 `postgresql.conf` 文件并修改以下配置项: - 将 `logging_collector` 设置为 `on`,开启日志收集器。 - 设置 `log_directory` 为你希望保存日志文件的目录。 - 设置 `log_filename` 为日志文件的命名格式。 - 设置 `log_file_mode` 为日志文件的权限。 11. 重启 PostgreSQL 服务使修改生效。 请注意,上述步骤中的命令可能需要使用 `sudo` 获得管理员权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

theskylife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值