通过ssh续集连接

use*_*283 4 node.js sequelize.js

我无法使用sequelize连接到远程mysql服务器,但我能够进入机器并连接到mysql.

如何使Sequelize通过ssh而不是直接在节点中连接到mysql服务器?

rob*_*lep 9

您设置了一个到您的服务器的SSH隧道,该隧道侦听(例如)端口33060:

ssh -NL 33060:localhost:3306 yourserver
Run Code Online (Sandbox Code Playgroud)

在另一个窗口/终端中,您可以使用MySQL客户端(假设它已在本地安装)通过SSH隧道连接到远程MySQL服务器:

mysql --port 33060 --host 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

如果可行,只需更改Sequelize中的端口号:

var sequelize = new Sequelize('database', 'username', 'password', {
  host: "127.0.0.1",
  port: 33060
});
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,则可能是远程MySQL服务器未配置为接受TCP上的连接.如果是这种情况,您应该配置MySQL服务器以使其接受TCP连接.