【发布时间】:2020-05-15 08:25:00
【问题描述】:
我正在尝试使用 Express 框架连接到我的 Amazon RDS 云数据库。我的 server.js 连接如下所示:
const express = require('express');
var bodyParser = require('body-parser')
const mysql = require('mysql');
const cors = require('cors');
const port = process.env.PORT || 3300;
const connection = mysql.createConnection({
host : 'endpoint-of-my-rds-database.amazonaws.com',
user : 'user',
password : 'password',
database : 'database',
port: 3300,
socketPath: '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'
});
const app = express();
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
connection.connect(function(err) {
if(err) throw err;
console.log("connected to database");
})
运行node server.js 后,我得到以下标准错误:
Access denied for user 'root'@'localhost' (using password: YES)
我可以使用 MySQL Workbench 以相同的凭据连接到我的云数据库。此外,我可以通过 Express 将凭据更改为本地 MySQL 数据库的凭据,从而连接到本地 MySQL 数据库。
在线研究,似乎这个错误是由于凭据无效,但是,正如我所提到的,我可以通过 Workbench 连接到我的 RDS 数据库,没有任何问题。只有 Express 似乎给我带来了麻烦。很乐意提供更多信息。任何帮助将不胜感激。提前谢谢你。
【问题讨论】:
-
那么你不是使用mysql的默认端口吗? 3306,而是使用 3300?
-
我在端口 3306 上运行本地 MySQL 服务器,所以如果我将 3300 更改为 3306,我会收到“listen EADDRINUSE :::3306”错误,因为 3306 是我运行 MySQL 的地方。如果我在没有启动本地 MySQL 服务器的情况下运行
server.js会收到错误消息:Error: connect ENOENT /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock似乎只有在我运行本地 MySQL 服务器时它才会尝试连接到 RDS 数据库。或者我完全误解了它。
标签: mysql amazon-web-services express