我试图使用sequelize访问远程服务器上的postgres数据库而我没有'知道如何。
我尝试了几种方法,但都没有。
我有这个配置文件:
{
"postgres" : {
"ip": "xxx.xxx.xxx.xx",
"port": "5432",
"user" : "hostUser",
"password": "hostPassword",
"db": {
"name":"dbName",
"username": "dbUsername",
"password": "dbPassword"
}
}
}
我试过这些方法
方法1:
let sequelize = new Sequelize('postgres://'
+ config.user + ':'
+ config.password + '@'
+ config.ip + '/'
+ config.db.name,
config.db.username,
config.db.password,
{
dialect : 'postgres'
}
)
输出:
error: password authentication failed for user
方法2:
let sequelize = new Sequelize(
config.db.name,
config.db.username,
config.db.password,
{
host: config.ip,
port: config.port,
dialect : 'postgres'
}
)
输出:
connect ECONNREFUSED
方法3:
let sequelize = new Sequelize(
config.db.name,
config.db.username,
config.db.password,
{
host: config.user + ':' + config.password + '@' + config.ip,
port: config.port,
dialect : 'postgres'
}
)
输出:
getaddrinfo ENOTFOUND
版本:
节点:7.7.3
pg:6.1.5
sequelize:3.30.2
postgres:9.5.6
答案 0 :(得分:0)
解决此问题的步骤如下:
在远程服务器上: -
1- find \ -name "postgresql.conf"
找到配置文件的位置
2- sudo nano /path/to/config/postgresql.conf
编辑配置文件
3-将此#listen_addresses = 'localhost'
更改为此listen_addresses = '*'
,然后保存并退出
4- find \ -name "pg_hba.conf"
查找hba配置文件
5- sudo nano /path/to/config/pg_hba.conf
编辑hba配置文件
6-加
host all all 0.0.0.0/0 md5
host all all ::/0 md5
在文件末尾,然后保存并退出
7-运行/etc/init.d/postgresql restart
重启postgres
在代码中连接如下: -
let sequelize = new Sequelize(
config.db.name,
config.db.username,
config.db.password,
{
host: config.ip,
port: config.port,
dialect : 'postgres'
}
)