KONG 2.6.0连接PostgreSQL9.5启动报don't know how to auth:10求助
错误根因
你遇到的/usr/local/share/lua/5.1/pgmoon/init.lua:211: don't know how to auth: 10报错,核心原因是Kong 2.6.0内置的PostgreSQL驱动pgmoon仅支持trust和md5两种认证方式,错误码10对应PostgreSQL的SCRAM-SHA-256认证机制,驱动无法识别该认证方式导致连接失败。
解决步骤
- 第一步:修改PostgreSQL主配置文件
编辑/etc/postgresql/9.5/main/postgresql.conf,找到password_encryption参数,修改为:
保存后退出。password_encryption = md5 - 第二步:修改PostgreSQL客户端认证配置
编辑同目录下的pg_hba.conf,找到Kong连接所用的数据库、用户对应的规则,将认证方式修改为md5,示例如下:
保存后退出。# 本地连接规则 local kong_db kong_user md5 # 跨主机连接规则 host kong_db kong_user 127.0.0.1/32 md5 - 第三步:重启PostgreSQL服务让配置生效
执行命令:systemctl restart postgresql@9.5-main.service - 第四步:重置Kong数据库用户密码
登录PostgreSQL命令行,执行语句重置密码,确保新密码以md5格式存储:ALTER ROLE kong_user WITH PASSWORD '你设置的数据库密码'; - 第五步:重新执行Kong数据库迁移
确认/etc/kong/kong.conf中的pg_host、pg_port、pg_user、pg_password、pg_database参数和实际配置一致后,执行迁移命令:kong migrations bootstrap -c /etc/kong/kong.conf
可选优化
日志中提示的ulimit警告可通过以下方式处理:临时生效执行ulimit -n 4096,永久生效则在/etc/security/limits.conf中添加如下配置,重启服务器后生效:
* soft nofile 4096 * hard nofile 8192
内容的提问来源于stack exchange,提问作者Jayakumar.P
相关产品推荐
相关产品推荐

