gpt4 book ai didi

node.js - 错误 : Ident authentication failed for user

转载 作者:搜寻专家 更新时间:2023-11-01 00:01:04 25 4
gpt4 key购买 nike

我无法通过 nodejs pg 模块或 pgAdmin3 连接 postgres下面是我的配置和错误消息,我找不到如何修复

用户、密码、角色权限、数据库创建

su - postgres

psql

ALTER USER db_admin WITH PASSWORD ‘aaee11’;

ALTER ROLE db_admin SUPERUSER CREATEDB CREATEROLE;


CREATE DATABASE “testdb” WITH OWNER = db_admin ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'en_GB.UTF-8' LC_CTYPE = 'en_GB.UTF-8' CONNECTION LIMIT = -1 TEMPLATE template0;

全部听

vi /var/lib/pgsql/9.4/data/postgresql.conf

#listen_addresses = 'localhost'
listen_addresses = '*'

重启

service postgresql-9.4 restart

nodejs pg 连接和错误信息

var conString = 'postgres://db_admin: aaee11@localhost/testdb';
var dbClient = new pg.Client(conString);
dbClient.connect(function(error) {
if (error) {
console.log(error);
}
});

[root@li61-123 app]# node --harmony app.js staging
Express server listening on port 8002
{ [error: Ident authentication failed for user "db_admin"]
name: 'error',
length: 94,
severity: 'FATAL',
code: '28000',
detail: undefined,
hint: undefined,
position: undefined,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: 'auth.c',
line: '285',
routine: 'auth_failed' }

pg_hba.conf 配置

vi /var/lib/pgsql/9.4/data/pg_hba.conf

# TYPE DATABASE USER ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident

更新

编辑 pg_hba.conf 后,将所有方法切换到 md5,它可以在 nodejs 中连接,但在 pgadmin 中仍然无法显示如下错误消息:

Server doesn't listen
The server doesn't accept connections: the connection library reports
could not connect to server: Operation timed out Is the server running on host "xx.xxx.xxx.xxx" and accepting TCP/IP connections on port 5432?
If you encounter this message, please check if the server you're trying to contact is actually running PostgreSQL on the given port. Test if you have network connectivity from your client to the server host using ping or equivalent tools. Is your network / VPN / SSH tunnel / firewall configured correctly?
For security reasons, PostgreSQL does not listen on all available IP addresses on the server machine initially. In order to access the server over the network, you need to enable listening on the address first.
For PostgreSQL servers starting with version 8.0, this is controlled using the "listen_addresses" parameter in the postgresql.conf file. Here, you can enter a list of IP addresses the server should listen on, or simply use '*' to listen on all available IP addresses. For earlier servers (Version 7.3 or 7.4), you'll need to set the "tcpip_socket" parameter to 'true'.
You can use the postgresql.conf editor that is built into pgAdmin III to edit the postgresql.conf configuration file. After changing this file, you need to restart

管理员

[Properties]
Name: xx.xxx.xxx.xxx
Host: xx.xxx.xxx.xxx
Port: 5432
Maintenance: postgres
Username: db_admin
Password: ........

最佳答案

根据 Postgresql pg_hba.conf documentation ident 验证方法如下:

Obtain the operating system user name of the client by contacting the ident server on the client and check if it matches the requested database user name. Ident authentication can only be used on TCP/IP connections. When specified for local connections, peer authentication will be used instead.

您需要切换到md5,然后在psql 中运行select pg_reload_conf(); 或重启postgres 服务。

关于node.js - 错误 : Ident authentication failed for user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32410006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com