我在Heroku上托管了一个NodeJs后端。我试图连接到在Hostwinds计划下托管的远程MySQL数据库。当我尝试在本地环境中连接到数据库时,它工作正常,但是当我将应用程序部署到Heroku时,出现错误消息Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'myUserName'@'someRandomIP' (using password: YES)
。
我已经将我的Heroku URL添加到了cPanel中的远程访问面板中,但是没有给用户访问权限。我还尝试过将someRandomIP
添加到cPanel的远程访问面板中,但是关于该IP的奇怪之处在于,每次部署/重新部署时都会发生更改。我肯定我的连接字符串正确,但以防万一:mysql://username:password@ipOfHost/dbName
。
这是我的服务器端代码:
const express = require("express");
const app = express();
const cors = require("cors");
const mysql = require("MySQL");
const { resolve } = require("path");
const stripe = require("stripe")(process.env.STRIPE_PRIVATE_API_KEY);
// enable CORS
app.use(cors({
origin: 'http://localhost:3000'
}))
// form connection object
var connection = mysql.createConnection(process.env.DATABASE_URL);
// connect to the database
connection.connect(function(err) {
if (err) throw err;
console.log("You are connected to the database");
})
app.listen(4242, () => console.log('Node server listening on oneline-backend.herokuapp.com'));
以下是Heroku控制台中完整错误的链接:https://i.imgur.com/QXfEVCW.png
任何帮助将不胜感激!这造成了很多麻烦。