我正在尝试连接到 AWS RDS 上托管的 postgres 数据库。但不知何故我收到了下面提到的错误。 主机“103.215.537.148”、用户“dbmasteruser”、数据库“postgres”的 pg_hba.conf 条目,无加密
我正在使用 postgres 15.2
我尝试在互联网上检查,但我不确定如何更改 aws rds 上的 pg_hba.conf 文件。
我尝试将数据库连接到 ec2 并设置入站规则,但没有任何效果。
感谢您的帮助。
import WebSocket from 'ws';
import PGPubsub from 'pg-pubsub';
import { db } from '../../config';
const initializeWebSocket = async (server: any) => {
const wss = new WebSocket.Server({ server });
const connectionString =
process.env.NODE_ENV === 'development'
? db.dev.DB_URL
: db.production.DB_URL;
console.log('_____', process.env.NODE_ENV, '______ws');
const pgClient = new PGPubsub(
'postgres://dbmasteruser:[email protected]:5432/postgres',
{ log: console.log },
);
const channel = 'users_insert';
await pgClient.addChannel(channel, function (channelPayload) {
console.log(channelPayload, 'channnel run is ther some insersion');
wss.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
client.send('Data in the database has changed');
}
});
});
const matchChannel = 'match_update';
await pgClient.addChannel(matchChannel, function (channelPayload) {
wss.clients.forEach((client) => {
if (client.readyState === WebSocket.OPEN) {
client.send('Data in the database has changed');
}
});
});
const res = await pgClient.publish(channel, { hello: 'world' });
export default initializeWebSocket;
import Logger from './core/Logger';
import { port } from './config';
import app from './app';
import http from 'http';
import WebSocket from './routes/webSocket/webSocketServer';
console.log('hii server');
const server = http.createServer(app);
WebSocket(server);
server
.listen(port, () => {
Logger.info(`server running on port : ${port}`);
})
.on('error', (e) => Logger.error(e));
该错误消息表明 PostgreSQL 连接设置存在问题。解决问题:
验证 AWS RDS 安全组是否允许来自应用程序 IP 地址的入站流量。
验证您的客户端是否配置为使用 SSL(如果您的 RDS 实例需要)。
检查您的 RDS 终端节点、端口、用户名和密码是否准确。
确保您的 RDS 实例包含指定的“postgres”数据库。
验证 RDS 实例的“dbmasteruser”权限。
检查 AWS RDS 日志并留意连接问题。
验证 PostgreSQL 15.2 是否与您的客户端库兼容。
检查防火墙问题和网络访问。
再次验证环境变量是否有错误或错误值。
希望它有助于解决您的问题:)