2017-02-10 6 views
0

上で実行したときに、私は次のスクリプトしているラップトップ上で実行すると、AWS MySQLサーバに接続することはできませんが、私は私のラップトップ上でこのスクリプトを実行すると、それがA-をnodeJSスクリプトは、Amazon EC2インスタンス

const pug = require('pug'); 
var cloudinary = require('cloudinary'); 
var express = require('express'); 
var multer = require('multer'); 
var upload = multer({ dest: 'uploads/' }); 
var request = require('request'); 
var https = require('https'); 
var fs = require('fs'); 
var morgan = require('morgan'); 
var bodyParser = require('body-parser'); 
var mysql  = require('mysql'); 
var JSON = require('JSON'); 
var bluebird = require('bluebird'); 

var databaseConnection = mysql.createConnection({ 
    host  : 'assignment3cloud.cfavdkskfrrc.us-west-2.rds.amazonaws.com', 
    port: 3306, 
    user  : '<>', 
    password : '<>', 
    database : 'assign3' 
}); 

databaseConnection .connect(function(err){ 
    if(!err) { 
     console.log("Database is connected ... \n\n"); 
    } else { 
     console.log(err); 
     console.log("Error connecting database ... \n\n"); 
    } 
}); 

走りますOK。

私はアマゾンEC2 Ubuntuのインスタンス上でそれを実行すると、私は次のエラーを取得する:

{ [Error: connect ETIMEDOUT] 
    errorno: 'ETIMEDOUT', 
    code: 'ETIMEDOUT', 
    syscall: 'connect', 
    fatal: true } 
Error connecting database ... 


/home/ubuntu/home/skrpt.js:38 
    if (error) throw error; 
      ^

Error: connect ETIMEDOUT 
    at Connection._handleConnectTimeout (/home/ubuntu/home/node_modules/mysql/lib/Connection.js:419:13) 
    at Socket.g (events.js:260:16) 
    at emitNone (events.js:67:13) 
    at Socket.emit (events.js:166:7) 
    at Socket._onTimeout (net.js:318:8) 
    at _runOnTimeout (timers.js:524:11) 
    at _makeTimerTimeout (timers.js:515:3) 
    at Timer.unrefTimeout (timers.js:584:5) 
    -------------------- 
    at Protocol._enqueue (/home/ubuntu/home/node_modules/mysql/lib/protocol/Protocol.js:141:48) 
    at Protocol.handshake (/home/ubuntu/home/node_modules/mysql/lib/protocol/Protocol.js:52:41) 
    at Connection.connect (/home/ubuntu/home/node_modules/mysql/lib/Connection.js:130:18) 
    at Object.<anonymous> (/home/ubuntu/home/skrpt.js:27:22) 
    at Module._compile (module.js:410:26) 
    at Object.Module._extensions..js (module.js:417:10) 
    at Module.load (module.js:344:32) 
    at Function.Module._load (module.js:301:12) 
    at Function.Module.runMain (module.js:442:10) 
    at startup (node.js:136:18) 
    at node.js:966:3 

私の推測では、EC2サーバーに話すためのデータベースを得るためにいくつかの追加のセキュリティ要件があるということです。私に何ができる?

+1

ポート3306の着信TCP要求に対して、インスタンスIPまたはそのグループをrdsのセキュリティグループに追加する必要があります。 –

+0

RDSインスタンスのセキュリティグループの設定は何ですか? –

+0

"EC2-Classicプラットフォームがサポートされている場合のみ、DBセキュリティグループが必要です。 申し訳ありませんが、私はこれに慣れていません。 –

答えて

-1

インスタンスの受信セキュリティルールにMYSQLポートを追加する必要があるかもしれません(awsインスタンスのページにいるときは、右にスクロールしてください)。

+0

データベースインスタンスまたはEC2インスタンスの場合 –

関連する問題