2013-02-13 13 views
16

के साथ एडब्ल्यूएस आरडीएस MySQL डेटाबेस इंस्टेंस से कनेक्ट करें मेरे फ्लास्क ऐप के लिए, मैं एडब्ल्यूएस आरडीएस पर बनाए गए डेटाबेस इंस्टेंस से कनेक्ट करने के लिए फ्लास्क-स्क्लाक्लेमी एक्सटेंशन का उपयोग करना चाहता हूं।फ्लास्क-एसक्यूएलकेमी

मैं बाहर कनेक्ट करने के लिए, आवेदन कई बार कोशिश करते हैं और मैं निम्नलिखित त्रुटि मिलती है जब:

sqlalchemy.exc.OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on 'xxxxxxxxxxxxxxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com'(60")

मेरे कोड इस तरह दिखता है:

from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 
application = Flask(__name__) 

application.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://{master username}:{db password}@{endpoint}/{db instance name}' 
db = SQLAlchemy(application) 

@application.route('/') 
def hello_world(): 
    return 'Hello World' 

if __name__ == '__main__': 
    application.run() 

Flask-SQLAlchemy documentation का कहना है कि SQLALCHEMY_DATABASE_URI का प्रारूप mysql डेटाबेस कनेक्शन के लिए इस तरह दिखना चाहिए:

mysql://username:[email protected]/db 

इसके अतिरिक्त, मैं अपने डेटाबेस उदाहरण पर जानकारी के लिए एडब्ल्यूएस आरडीएस कंसोल की जांच कर सकता हूं। कंसोल this जैसा दिखता है।

अभी मैं यह सोचते हैं कि "उपयोगकर्ता नाम" SQLAlchemy में एडब्ल्यूएस आरडीएस कंसोल में "मास्टर प्रयोक्ता नाम" को संदर्भित करता है, "सर्वर" SQLAlchemy में "Endpoint" एडब्ल्यूएस आरडीएस कंसोल में, और "को संदर्भित करता है डीबी "को" डेटाबेस इंस्टेंस नाम "से संदर्भित करता है

मैं क्या गलत कर रहा हूं ??

यदि कोई एडब्ल्यूएस आरडीएस कंसोल शर्तों के साथ मेरे लिए SQLALCHEMY_DATABASE_URI का वर्णन कर सकता है, जो समस्या को पूरी तरह से हल करेगा।

उत्तर

19
अपने AWS आरडीएस कंसोल के लिए

जाओ और अपने उदाहरण का चयन -> डीबी सुरक्षा समूह ->

क्लिक करें डिफ़ॉल्ट और एक नया सीआईडीआर सिफारिश IP श्रेणी के अनुसार जोड़ें।

यह मूल रूप से फ़ायरवॉल कॉन्फ़िगरेशन है जो यह निर्धारित करता है कि डेटाबेस उदाहरण से कौन कनेक्ट हो सकता है।

आप इसे 0.0.0.0/0 के रूप में सेट कर सकते हैं ताकि फ़ायरवॉल आपको किसी भी होस्ट/नेटवर्क से इसे एक्सेस करने से नहीं रोक सके।

+0

यह उत्तर अब बहुत मान्य नहीं है क्योंकि एडब्ल्यूएस में इंटरफ़ेस बदल गया है :( – sbose

0

यह एक वैध पथ है: ईसी 2 डैशबोर्ड -> नेटवर्क & बाएं तरफ पैनल से सुरक्षा -> सुरक्षा समूह खोजें।

वहाँ आप अपनी सुरक्षा समूह नाम कर सकते हैं और:

Security groups

यदि आप एक सुरक्षा समूह बनाया है, तो आप संख्या 2.

  1. एक नया सुरक्षा समूह बनाना करने के लिए जा सकते हैं विवरण।

    वीपीसी शायद आपके लिए स्वचालित रूप से बनाया जाएगा।

    Create security group window

    यह बनाने के बाद, सूची में से चुनें।

    1. सेट अप भीतर का और/या आउटबाउंड कनेक्शन:

    यहाँ आप भीतर का कनेक्शन नियम कॉन्फ़िगर कर सकते हैं।

    Inbound window

    संपादित करें पर -> बंदरगाह 80.

    Edit inbound connection rules window

    मुझे आशा है कि यह अब से हर किसी को मदद करता है पर नियम आप आसान विन्यास के लिए डिफ़ॉल्ट प्रीसेट है, उदाहरण के लिए HTTP जोड़ें।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^