【问题标题】:What's the best Node.js mysql module for connecting to mysql over ssl?通过 ssl 连接到 mysql 的最佳 Node.js mysql 模块是什么?
【发布时间】:2012-09-29 04:54:13
【问题描述】:

到目前为止,我已经使用node-mysql 构建了我的应用程序。我刚刚使用 AWS RDS 服务设置了一个可安全访问的 mysql 数据库,并使用 mysql 命令行客户端成功测试了 SSL 连接。我有亚马逊的公钥 .pem 文件。 node-mysql 似乎没有用于 SSL 连接选项的 api。

到目前为止,我发现的唯一一个是Node-mysql-libmysqlclient,但我在尝试连接它时遇到了错误,绑定依赖项为空,所以我不确定我是否应该信任它。建议使用哪个模块/api?或者,如果您知道我需要在 node-mysql 中修改什么,我愿意稍微修改一下,但看起来它正在使用较低级别的套接字连接到 MySQL,所以我不确定获得已添加 SSL 部分。

【问题讨论】:

  • FYI 连接命令行 mysql 客户端只需要 "mysql -h host -u username -ssl_ca=mysql-ssl-ca-cert.pem -p" where mysql-ssl- ca-cert.pem 是 Amazon 提供的公钥文件。我不需要生成任何其他密钥或证书。

标签: mysql node.js ssl node-mysql


【解决方案1】:
var mysql  = require('mysql');
var fs     = require('fs');

var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'me',
  password : 'secret',
  database : 'my_db',
  ssl      : {
        ca   : fs.readFileSync('./ssl/server-ca.pem'), // should be enough for AWS
        key  : fs.readFileSync('./ssl/client-key.pem'), // required for google mysql cloud db
        cert : fs.readFileSync('./ssl/client-cert.pem'), // required for google mysql cloud db
  }
});

这应该可以解决问题。

【讨论】:

    【解决方案2】:

    node-mysql 模块支持 ssl 连接,如下所示:https://github.com/felixge/node-mysql#ssl-options。

    【讨论】:

      【解决方案3】:

      使用续集!为 MariaDB/MySQL 提供最好的 ORM。 https://github.com/sequelize/sequelize

      npm install sequelize
      --- then ---
      npm install mariadb
      --- or ---
      npm install mysql
      

      【讨论】:

      • 为什么所有的反对票都没有评论为什么?
      猜你喜欢
      • 2014-06-17
      • 2011-09-14
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 2018-06-08
      相关资源
      最近更新 更多