我正在为数据库连接出错而苦苦挣扎:
Unable to connect to the database: ConnectionError [SequelizeConnectionError]: self signed certificate
在这里,您有我使用的代码-被注释的部分不起作用,错误仍然出现:
// const pg = require('pg');
// pg.defaults.ssl = true;
// const fs = require('fs');
// const rdsCa = fs.readFileSync(__dirname + '/rds-combined-ca-bundle.pem');
const sequelize = new Sequelize('xxxx', 'xxxxxx', 'xxxxxxxx',{
host: 'xxxxxx.eu-west-1.compute.amazonaws.com',
dialect: 'postgres',
ssl: true,
protocol: "postgres",
logging: true,
dialectOptions: {
ssl: true
}
});
sequelize
.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
})
.catch(err => {
console.error('Unable to connect to the database:', err);
});
该数据库基于Heroku构建。
您能帮我解决问题吗?
这是由于node-postgres
版本8中的(意外)重大更改(请参阅此GitHub问题)。
解决的办法是通过rejectUnauthorized: false
向sequelize
连接参数,如通过用户的GitHub这里jsanta描述:
const sequelize = new Sequelize('xxxx', 'xxxxxx', 'xxxxxxxx',{
host: 'xxxxxx.eu-west-1.compute.amazonaws.com',
dialect: 'postgres',
ssl: true,
protocol: "postgres",
logging: true,
dialectOptions: {
ssl: {
require: true,
rejectUnauthorized: false // <<<<<< YOU NEED THIS
}
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句