大家好。我想使用节点js建立到远程mysql数据库的连接。但是我正面临着这个错误。我不知道是否错误地指定了对数据库的访问路径
var mysql = require('mysql');
var pool = mysql.createPool({
host: "http://kamerun-it.com/mysql",
connectionLimit : 100,
database: "****",
user: "****",
password: "*****",
multipleStatements: true
});
throw err;
^
错误:getaddrinfo ENOTFOUNDhttp://kamerun-it.com/mysql在GetAddrInfoReqWrap.onlookup上(作为完成时)(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(内部/模块/cjs/loader.js:973:10)在Module.load(internal / modules / cjs / loader.js:812:32)在Function.Module._load(内部/模块/cjs/loader.js:724:14)在Module.require(internal / modules / cjs / loader.js:849:19){errno:“ ENOTFOUND”,代码:“ ENOTFOUND”,syscall:“ getaddrinfo”,主机名:“ http://kamerun-it.com/mysql”,致命的:真实}
您使用主机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,是否可以远程访问数据库以及可以通过哪个端口使用它。