使用节点连接到远程 mysql 数据库
Posted
技术标签:
【中文标题】使用节点连接到远程 mysql 数据库【英文标题】:connection to a remote mysql database using node 【发布时间】:2020-03-26 02:32:03 【问题描述】:大家早上好。我想使用节点 js 建立与远程 mysql 数据库的连接。但我正面临这个错误。不知道是不是我错误指定了db的访问路径
代码
var mysql = require('mysql');
var pool = mysql.createPool(
host: "http://kamerun-it.com/mysql",
connectionLimit : 100,
database: "****",
user: "****",
password: "*****",
multipleStatements: true
);
错误
throw err;
^
错误:getaddrinfo ENOTFOUND http://kamerun-it.com/mysql 在 GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:60:26) -------------------- 在 Protocol._enqueue (F:\kamerun it\aspi-api\node_modules\mysql\lib\protocol\Protocol.js:144:48) 在 Protocol.handshake (F:\kamerun it\aspi-api\node_modules\mysql\lib\protocol\Protocol.js:51:23) 在 PoolConnection.connect (F:\kamerun it\aspi-api\node_modules\mysql\lib\Connection.js:119:18) 在 Pool.getConnection (F:\kamerun it\aspi-api\node_modules\mysql\lib\Pool.js:48:16) 在对象。 (F:\kamerun it\aspi-api\app\model\db.js:16:8) 在 Module._compile (internal/modules/cjs/loader.js:956:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10) 在 Module.load (internal/modules/cjs/loader.js:812:32) 在 Function.Module._load (internal/modules/cjs/loader.js:724:14) 在 Module.require (internal/modules/cjs/loader.js:849:19) 错误号:'ENOTFOUND', 代码:'ENOTFOUND', 系统调用:'getaddrinfo', 主机名:'http://kamerun-it.com/mysql', 致命:真实
【问题讨论】:
【参考方案1】:您的主机 URL 配置中可能有错误。
这是一个连接到远程 MySQL 的工作示例:
const mysql = require("mysql");
const connection = mysql.createPool(
host: "remotemysql.com",
user: "aKlLAqAfXH",
password: "PZKuFVGRQD",
database: "aKlLAqAfXH"
);
connection.query(
"SELECT hexcode FROM colours WHERE precedence = 2",
(err, result) =>
err ? console.log(err) : console.log(result[0].hexcode);
);
这里有一个错误的主机参数:
const mysql = require("mysql");
const connection = mysql.createPool(
host: "WRONGremotemysql.com",
user: "aKlLAqAfXH",
password: "PZKuFVGRQD",
database: "aKlLAqAfXH"
);
connection.query(
"SELECT hexcode FROM colours WHERE precedence = 2",
(err, result) =>
err ? console.log(err) : console.log(result[0].hexcode);
);
第二个返回相同的ENOTFOUND
错误。
检查这是否是正确的 URL,是否可以远程访问数据库以及您可以通过哪个端口使用它。
【讨论】:
当我要访问主机 url kamerun-it.com/mysql 时,我可以通过输入凭据来访问我的数据库(**可以确认 url 正确并且数据库可以远程访问??**) 您访问的是在 web 端口 80 上运行的 phpmyadmin 门户,远程访问数据库是不同的。不,说它可以远程访问是正确的。 远程访问不一样??在我的情况下如何访问这个数据库 如果您想通过不在同一台服务器上的脚本使用它 - 那就是远程访问。它应该由您的托管服务提供商或系统管理员允许/配置,或者如果您有权访问 mysql 配置,则启用它以上是关于使用节点连接到远程 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 Java 通过 SSH 连接到远程 MySQL 数据库
如何使用 JetBrains DataGrip 连接到远程 MySQL 数据库