lea*_*arn 4 mysql amazon-web-services node.js express
我在 AWS 和 MySQL 数据库上有一个实例正在处理它。我能够通过本地机器上的工作台连接到实例。但是,我无法通过节点 js 代码连接到数据库。以下是片段:
var express = require("express");
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'ec2-52-33-41-xxx.us-west-2.compute.amazonaws.com',
port : 3306,
user : 'ec2-user',
password : 'root',
database : 'FAMILY_GIVING_TREE'
});
var app = express();
connection.connect(function(err){
if(!err) {
console.log("Database is connected ... ");
} else {
console.log("Error connecting database ... ");
}
});
Run Code Online (Sandbox Code Playgroud)
错误是:
{ [Error: connect ECONNREFUSED 52.33.xx.84:3306]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '52.33.41.84',
port: 3306,
fatal: true }
Run Code Online (Sandbox Code Playgroud)
节点 js 代码 w=not 写在 AWS 实例上,我正在我的机器上写它,是的,在安全组中启用了端口 3306。
我得到数据库连接问题。知道我哪里出错了吗?提前致谢。
您的 node.js 代码中存在语法错误。替换port : 3306,
为下面你缺少的''
port : '3306',
Run Code Online (Sandbox Code Playgroud)
小智 1
首先,您必须进行设置,使 Mysql 可以远程访问。
https://mariolurig.com/coding/connect-remotely-mysql-database-amazon-ec2-server/
其次,就我而言,我必须使用我的 ec2 公共 IP 地址而不是公共 DNS。所以:
var connection = mysql.createConnection({
host : '52.33.41.xx',
port : '3306',
user : 'remote',
password : 'password',
database : 'FAMILY_GIVING_TREE'
});
Run Code Online (Sandbox Code Playgroud)
第三,请记住,“远程”是您授予 localhost 和“%”(来自所有 IP)数据库的所有权限的用户。祝你好运
归档时间: |
|
查看次数: |
14412 次 |
最近记录: |