如何解决Windows 10 Sequelize如何为与数据库的SSL连接加载证书
我对Sequelize有问题。我想摆脱自己编写所有sql语句的想法,并认为我会使用Sequelize。但是我无法连接到数据库,因为我不知道在Windows 10上哪里可以找到必要的证书。
首先,设置:
- 操作系统:Windows 10
- NodeJS 12.18.3
- 使用Express和Sequelize
- 数据库是已激活SSL的MySQL数据库。
问题描述:
如果我使用MySQL连接(不进行序列化),则一切正常:
var db_config = {
host:"",user:"",password:"",port:X,database:"",ssl:true
}
function connectToDB() {
con = mysql.createConnection(db_config);
}
现在,如果我使用
const seq = new Sequelize('dialect://user:pwd@url:port/dbname')
seq.authenticate();
我总是得到一个错误:
错误:用户的访问被拒绝... 代码:“ ER_ACCESS_DENIED_ERROR”, errno:1045, sqlState:“ 28000”, sqlMessage:“用户的访问被拒绝...
我猜是因为我没有像在MySQL脚本中那样指定“ ssl”的用法。 我看过 Node Sequelize cannot connect to MySQL SSL 这似乎使用的是旧版本,因为我无法使用“ ssl:true”,因为我收到一条错误消息,说ssl不能是布尔值,它必须是一个对象。 How to connect via SSL to sequelize DB建议,应该这样:
const seq = new Sequelize('db','user','pwd',{
host: 'url',port: port,dialect: 'mysql',dialectOptions: {
ssl: {
key: cKey,cert: cCert,ca: cCA
}
}
});
seq.authenticate();
现在,在Windows 10上哪里可以找到cKey,cCert和cCA的值?我实际上不知道应该去那里什么。我想我必须加载一些pem文件。但是,它们在哪里?还是有一种解决方法,以便我可以按照第一个SO链接中的建议将ssl设置为true?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。