我一直在尝试使用 Node js 连接到 mysql db remotley。在我的托管提供商迁移到较新的 cpanel 版本(因为安装 SSL 证书)之前一切正常,但从那时起我总是遇到错误连接超时。
我仔细检查了连接参数(主机名、用户名、数据库等),它们是正确的,我还将我的 IP 地址(我连接的电脑)添加到 cpanel 中的白名单中。我什至尝试使用 mysql 工作台进行连接,但它也不行。 这是我的连接字符串:
import mysql from "mysql2"
const pool = mysql.createPool({
host: '******',
user: '*********',
password: '*****',
database: '******',
connectionLimit:100,
port:3306
}).promise()
pool.getConnection((err, connection) => {
if (connection) {
console.log("Connected")
}
我认为由于某种原因,我的 root 用户在这次迁移期间失去了所有权限,因为当我尝试向 phpmyadmin 中的另一个用户添加权限时,我收到“用户 root@localhost 的访问被拒绝”,或者端口 3306 可能被阻止,但我不知道如何解决这个问题
如果你的数据库主机nodejs和mysql表头不同,就会 超时。
示例:nodejs 连接池主机是
127.0.0.1
,
pool = mysql.createPool({
host: "127.0.0.1",
user: "user",
password: "",
database: "nodejs",
port: 3306,
});
mysql 主机是
localhost
Source Server : localhost
Source Server Version : 50624
Source Host : localhost:3306
Source Database : nodejs
Target Server Type : MYSQL
Target Server Version : 50624
File Encoding : 65001