从Heroku节点应用连接到远程nysql数据库-适用于localhost

我的代码是这样的:

const express = require('express')
const app = express()
const port = process.env.PORT || 3000
const mysql = require('mysql');

let mainData;

const connection = mysql.createConnection({
  host     : 'xx.xx.xx.xx',user     : 'zosimaia_dbm',password : 'xxxxxxxxxxxxxx',database : '............'
});

connection.connect();
connection.query('SELECT Name,Surname,YearOf,HomeAdCity_ID,Job_ID FROM graduates',(err,rows) => {
    if(err){ console.log(err)};

    console.log('Data received from Db:');
    console.log(rows[0].Name);
    mainData=rows;
});

connection.end(); 

app.all('/data',function(req,res,next) {
    res.header("access-control-allow-origin","*");
    res.header("access-Control-Allow-Headers","X-Requested-With");
    next();
});

app.get('/',(req,res) => res.send('Hey there!') )
//app.get('/test',res) => res.send('Random test! '+ testData) )
app.get('/data',res) => res.json(mainData) )

app.listen(port,() => console.log(`Example app listening on port ${port}!`))

在localhost:3000上一切正常,但是Heroku显示应用程序错误消息。我已在应用程序页面上将DATABASE_URL变量添加为mysql://zosimaia_dbm:.....@..../.....。我已将应用程序的URL和我的本地主机IP地址添加到CPANEL远程MySQL。

包含以下行的日志:

{
2019-11-04T22:23:45.015109+00:00 app[web.1]: code: 'ER_accESS_DENIED_ERROR',2019-11-04T22:23:45.01511+00:00 app[web.1]: errno: 1045,2019-11-04T22:23:45.015112+00:00 app[web.1]: sqlMessage: "access denied for user 'zosimaia_dbm'@'ec2-54-74-62-252.eu-west-1.compute.amazonaws.com' (using password: YES)",2019-11-04T22:23:45.015114+00:00 app[web.1]: sqlState: '28000',2019-11-04T22:23:45.015115+00:00 app[web.1]: fatal: true
2019-11-04T22:23:45.015116+00:00 app[web.1]: }

at=error code=H10 desc="App crashed" method=GET path="/"

奇怪,因为我使用的是托管公司-不是amazonaws.com。

谢谢您的任何建议 詹尼斯(Jiannis)

mengfanxiang123 回答:从Heroku节点应用连接到远程nysql数据库-适用于localhost

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3163221.html

大家都在问