gpt4 book ai didi

mysql - NodeJS Mysql 模块在远程数据库上抛出 ETIMEDOUT 错误

转载 作者:行者123 更新时间:2023-11-29 03:16:49 28 4
gpt4 key购买 nike

美好的一天!

我正在尝试使用 Node JS 连接到 MySQL 数据库。我 npm i'd mysql 并将其包含在我的文件之上。当我运行我的代码时,我什么也得不到。我确实在脚本末尾记录了连接,这给了我一个有效的连接模型作为返回。我似乎从来没有达到 .connect 中的功能,也没有达到查询或 ping。

当我连接到本地主机(运行 Wamp 服务器)时,连接成功并且我检索了一些控制台日志。我尝试连接到第二个外部数据库,但出现了同样的错误。

我收到的错误:

超时。在 Connection_handleConnectTimeout。握手时 protocol.js 中的错误是致命的。 (我省略了一些文字)。

我安装了最新的 mysql 模块。

   var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'MY_HOST_IP',
database: 'MY_HOST_DB',
user: 'MY_HOST_USR',
password: 'MY_PW'
});
connection.connect(function (err) {
console.log('conecting');
if (err) {
console.error('Error connecting: ' + err.stack);
}

console.log('Connected as id ' + connection.threadId);
});
connection.query('SELECT * from accounts', function (error, results, fields) {
if (error) console.log(error);
console.log('account ', results[0]);
});
connection.ping(function (error) { console.log('pingerror'); });

编辑:

上述代码在连接到两个外部托管数据库之一(使用它们的 IP 地址)时超时。这些数据库的主机说设置没有问题。我尝试从 127.0.0.1:22005 连接到数据库,也许有问题?当我将上面的代码放在一个独立的 JS 文件中并在我的命令行中使用 Node 运行它时,它会连接。

最佳答案

您需要授予所有/特定 I.P 的所有权限,如下所示:

//下面的查询创建没有密码的用户,设置不同的密码检查这个:http://knowmysql.blogspot.com/2013/09/mysql-grant-password-error-error-1372.html

创建用户 'root'@'%' 使用 '' 通过 mysql_native_password 识别;

//添加权限

授予 上的所有权限。 给 'root'@'%';

关于mysql - NodeJS Mysql 模块在远程数据库上抛出 ETIMEDOUT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54286640/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com