本帖最后由 James.Lv 于 2023-1-5 17:36 编辑
小白分享给小白的操作教程 , 希望给有需要的人一点帮助.老手不是问题的问题,但是作为新手却要研究很久,这里按步骤给大家分享一下如何完成安装配置.
在Ubuntu中安装postgres 并且可以远程访问
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
复制代码 3.安装完成后运行一下命令进行查看
安装完成之后 , 会在 系统中创建一个 postgres 用户 , 不要问为什么 , 但是他就是创建了
- # 查看postgresql版本
- sudo -u postgres psql -c "SELECT version();"
- # 查看postgresql服务是否启动
- service postgresql status
复制代码 4. 数据库配置
- # 切换用户
- sudo su postgres
- # 进入交互界面
- psql
复制代码 5.创建数据库
- -- 创建数据库(test)
- create database test;
- -- 删除数据库(test)
- drop database test;
- -- 查询所有数据库
- \l
- -- 切换数据库test
- \c test
复制代码 6. 创建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;
复制代码 7.用户权限授权
- -- 给用户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;
复制代码 8. 配置远程访问 这一步是关键,远程访问不通,就是这里的问题
- # 删除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
复制代码 在pg_hba.conf文件末尾追加以下内容:
- host all all 0.0.0.0/0 trust
复制代码 添加完成后,保存退出,然后重启postgresql 服务。
- sudo service postgresql restart
复制代码
9.配置好之后,可以用一下命令登录
- psql -U postgres -h 127.0.0.2 -p 5432 -d postgres
复制代码
异常排查
如果在链接过程中出现这个错误,那么请将 pg_hba.conf 文件中 md5 全都改成 trust 然后再重启 postgresql 服务
- postgreSQL: password authentication failed for user "postgres"
复制代码
有些时候会提示端口未开放
- 开放端口
- firewall-cmd --zone=public --add-port=5432/tcp --permanent # 开放5432端口
- firewall-cmd --zone=public --remove-port=5432/tcp --permanent #关闭5432端口
- firewall-cmd --reload # 配置立即生效
- 查看防火墙所有开放的端口
- firewall-cmd --zone=public --list-ports
复制代码
|
|