如何为我的 SQL 数据库添加远程主机以将其与我开发的应用程序连接

Posted

技术标签:

【中文标题】如何为我的 SQL 数据库添加远程主机以将其与我开发的应用程序连接【英文标题】:How to add remote host for my SQL Database to connect it with the app I develop 【发布时间】:2021-10-05 14:59:30 【问题描述】:

我在本地开发快速应用程序以访问我的 WordPress 数据库(位于 https://example.com)时遇到了麻烦。这是我的配置(因为我可以让它与本地数据库一起工作。我已经尝试过不使用 3306):

module.exports = 
HOST: "https://example.com:3306",
USER: "user",
PASSWORD: "password",
DB: "mydb"

;

const mysql = require("mysql2");
const dbConfig = require("../config/db.config.js");

// Create a connection to the database
const connection = mysql.createConnection(
  host: dbConfig.HOST,
  user: dbConfig.USER,
  password: dbConfig.PASSWORD,
  database: dbConfig.DB
);

// open the MySQL connection
connection.connect(error => 
  if (error) throw error;
  console.log("Successfully connected to the database.");
);

module.exports = connection;

我正在使用 webmin/virtualmin 来管理我的不同 VPS。这是我所做的:

    Webmin -> 服务器 -> MySQL 数据库服务器 -> 用户权限 -> 创建新用户。 使用我的地址 ip 作为主机并具有所有权限创建用户。 Webmin -> 服务器 -> MySQL 数据库服务器 -> 数据库权限 -> 创建新数据库权限 为数据库创建一个用户,其用户名与上述相同,我的 ip 地址作为主机并具有所有权限。 Webmin -> 服务器 -> MySQL 数据库服务器 -> MySQL 服务器配置 将“MySQL 服务器监听地址”设置为“任意”

即使这样,我也无法建立联系。有谁知道为什么?我得到的错误是这样的:

Error: getaddrinfo ENOTFOUND https://example.com:3306
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:69:26) 
  errno: -3008,
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'https://example.com:3306',
  fatal: true

【问题讨论】:

【参考方案1】:

我解决了我的问题。 “找不到错误”是因为我将主机设置为“example.com”而不是“190.x.x.x”(IP地址)。

然后,我收到“超时”错误。我在下面所做的没有用。你必须授权 MySQL 监听其他端口,然后授权数据库自己这样做,最后配置防火墙。步骤如下:

    Webmin -> 服务器 -> MySQL 数据库服务器 -> MySQL 服务器配置 -> 将监听地址设置为“0.0.0.0”。 Virtualmin -> 编辑数据库 -> 远程主机 -> 添加我的 ip 地址。 Webmin -> 网络 -> 防火墙并添加规则“如果协议是 TCP 并且目标端口是 3306”

【讨论】:

以上是关于如何为我的 SQL 数据库添加远程主机以将其与我开发的应用程序连接的主要内容,如果未能解决你的问题,请参考以下文章

如何加载 JSON 数据以将其与 select2 插件一起使用

如何配置 Git 以将其与 Dropbox 一起使用?

如何为复杂的 sql 查询获取中间数据。 PostgreSQL

如何为页面上的元素添加填充?

如何为可扩展的 Flutter 小部件设置动画以将其滑出屏幕

sql SQL获取主机名以将其解析为IP地址