当前位置:   article > 正文

linux 使用docker安装 postgres 教程,踩坑实践

linux 使用docker安装 postgres 教程,踩坑实践

linux 使用docker安装 postgres 教程

踩坑实践,安装好了不能远程访问
防火墙已关闭、postgres 配置了允许所有ip 访问、网络是通的。端口也是开放的,就是不能用数据库链接工具访问。

最后发现是云服务器端口没开 ,将其打开
在这里插入图片描述
到这一步完全正确了,但是又报错了
关于连接PostgreSQL时提示 FATAL: password authentication failed for user “连接用户名” 的解决方法.
[postgres @ pgsqldb-master bin]$ psql -h 127.0.0.1 -U postgres
Password for user postgres:
psql: FATAL: password authentication failed for user “postgres”
原因:
之前配置允许所有ip 远程访问时,设置了md5 ,但是又没有更新密码。密码还是用的原来的 sha 加密存储的,所以不能链接上

解决方法
1、修改密码的认证方式(见下文),或者重新修改一下密码(记住每次修改认证方式后,重启数据,都需要更新一下用户密码)
网上都说 把method 参数改成 trust ,强烈不建议,这个参数意思是 允许不使用密码登录数据库,不安全

[postgres @ pgsqldb-master bin]$ vim ../data/pg_hba.conf
  • 1

2、 重新启动docker 容器(博主使用的docker) 或者数据库服务
cat
3、再次修改你的密码(重要),因为你修改了数据库存储密码的方式,所以以前的密码是不管用了

ALTER USER username WITH PASSWORD 'newpassword';
  • 1

然后再次使用密码 链接即可成功,
在这里插入图片描述
不容易啊,历时10小时,终于弄好了数据库。也学到了很多东西。

pg_hba.conf配置参数详解

pg_hba.conf 文件主要用来配置数据库的访问权限。

TYPE 参数设置

TYPE 表示终端访问的主机类型,值可能为:
若为 local 表示是unix-domain的socket连接
若为 host 是TCP/IP socket
若为 hostssl 是SSL加密的TCP/IP socket

DATABASE 参数设置

DATABASE 表示数据库名称,值可能为:
all ,sameuser,samerole,replication,数据库名称 ,或者多个
数据库名称用 逗号,注意ALL不匹配 replication

USER 参数设置

USER 表示用户名称,值可以为:
all,一个用户名一组用户名 ,多个用户时,可以用 ,逗号隔开,
或者在用户名称前缀 + ;在USER和DATABASE字段,也可以写一个单独的
文件名称用 @ 前缀,该文件包含数据库名称或用户名称

ADDRESS 参数设置

该参数可以为 主机名称 或者IP/32(IPV4) IP/128(IPV6),主机
名称以 .开头,samehostsamenet 匹配任意Ip地址

METHOD 参数设置

该值可以为"trust", “reject”, “md5”, “password”, “scram-sha-256”,
“gss”, “sspi”, “ident”, “peer”, “pam”, “ldap”, “radius” or “cert”
[password] 表示采用明码发送密码
[md5] 表示密码在发送过程中,使用md5加密算法进行加密-也是最常用的加密方式
典型示例1

TYPE DATABASE USER ADDRESS METHOD

host all all 0.0.0.0/0 md5

host 参数表示安装PostgreSQL的主机
all 第一个all 表示该主机上的所有数据库实例
all 第二个all 表示所有用户
10.10.56.17/32 表示需要连接到主机的IP地址,32表示IPV4
md5 表示验证方式 12345

即上述表示允许所有IP可以通过MD5的密码验证方式连接主机上所有的数据库.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/251692
推荐阅读
相关标签
  

闽ICP备14008679号