2013-05-30 7 views
22

ईसी 2 इंस्टेंस i-78a8df00 से, मैं आरडीएस इंस्टेंस mysql से कनेक्ट करने की कोशिश कर रहा हूं। ************। Us-east-1। rds.amazonaws.com। वे दोनों यू.एस. पूर्व क्षेत्र में हैं। मैंने आरडीएस सुरक्षा समूह में ईसी 2 इंस्टेंस (एसजी - ********) के सुरक्षा समूह को जोड़ा, लेकिन इससे मदद नहीं मिली। यह एक फ़ायरवॉल/DNS समस्या के रूप में यह बाहर समय है जब इस आदेश चलाकर प्रतीत होता है:ईसी 2 इंस्टेंस से आरडीएस इंस्टेंस से कनेक्ट नहीं हो सकता

[email protected]:~$ mysql -h mysql.************.us-east-1.rds.amazonaws.com 

त्रुटि 2003 (HY000):। 'Mysql पर MySQL सर्वर से कनेक्ट नहीं कर सकते हैं ***** *******। us-east-1.rds.amazonaws.com '(110)

मैं आरडीएस उदाहरण के लिए ठीक अपने स्थानीय मशीन से ऊपर की तरह उसी लाइन का उपयोग कनेक्ट कर सकते हैं। मैंने विभिन्न फोरम समाधानों की कोशिश की लेकिन वे मदद नहीं करते हैं।

+1

बंदरगाहों EC2 बॉक्स आरडीएस के लिए कनेक्शन की अनुमति देने के लिए सुरक्षा समूह पर खुला रहे हैं? – david99world

+0

हां, मैंने आरडीएस सुरक्षा समूह में ईसी 2 इंस्टेंस (एसजी - **) का सुरक्षा समूह जोड़ा। –

+0

यदि मैं ईसी 2 से आरडीएस होस्टनाम में ट्रैसरआउट करता हूं, तो यह समय समाप्त होता है: ट्रैसरआउट mysql। ****। Us-east-1.rds.amazonaws.com mysql पर traceroute। ****। Us-east -1.rds.amazonaws.com (10.206। **। ***), 30 होप्स अधिकतम, 60 बाइट पैकेट^सी 1 * * * 2 * * * 3 * * * 4 * * * 5 * * * इससे मुझे विश्वास होता है कि यह एक DNS/फ़ायरवॉल मुद्दा है। हालांकि, मेरे पास इस ईसी 2 सुरक्षा समूह से कनेक्शन की अनुमति देने के लिए आरडीएस सुरक्षा समूह के लिए एक नियम है। –

उत्तर

1

, की तरह कुछ समय पिछले पोस्टिंग और इस पोस्टिंग के बीच, अमेज़न DNS रूटिंग समस्या का समाधान हो लग रहा है ...

+0

का समय है जब भी मैं मल्टी-एजेड का उपयोग करता हूं, यह सार्वजनिक रूप से सुलभ नहीं है। – Neo

3

जाहिर है, बहु-एजेड सब कुछ खराब कर देता है। चूंकि डिफ़ॉल्ट बहु-एजेड कॉन्फ़िगरेशन ने हमारे डेटाबेस को क्षेत्र-पूर्व-1 डी में रखा है, और मेरा ईसी 2 उदाहरण क्षेत्र-पूर्व-1 ए क्षेत्र में था, इसलिए DNS सही ढंग से रूटिंग नहीं कर रहा था। मैंने गैर-बहु-एजेड के रूप में आरडीएस इंस्टेंस को फिर से बनाया, और इसे हमारे-पूर्व-1 ए में बनाया, और सब खुश हैं।

यदि आरडीएस, ईएलबी और बहु-एजेड क्षमताओं के साथ एडब्ल्यूएस पर DNS रूटिंग के संबंध में कोई सुपर प्रतिभाएं हैं, तो यह जानना बहुत ही बढ़िया होगा कि यह कैसे करें, क्योंकि यह कहीं भी दस्तावेज नहीं है अमेज़ॅन वेब सेवा के दस्तावेज। क्योंकि सब कुछ बहु AZ आरडीएस के लिए अब ठीक काम करता है

19

लोग हैं, जो कोशिश कर इसी तरह के मुद्दों में आ सकते हैं के लिए अतिरिक्त जानकारी आरडीएस या RedShift से कनेक्ट करने के:

1) की जाँच करें सुरक्षा समूहों

आरडीएस उदाहरण के लिए सुरक्षा समूह सत्यापित करें सुरक्षा समूह अपने स्रोत सर्वर अंतर्गत आता है करने के लिए (या इसके आईपी अगर करने के लिए बाहरी सीधे जोड़ा से उपयोग की अनुमति देता एडब्ल्यूएस)। सुरक्षा समूह जिसे आप देखना चाहते हैं वह आरडीएस कंसोल यूआई (जिसे "सुरक्षा समूह" नाम दिया गया है) से आरडीएस आवृत्ति विशेषताओं में निर्दिष्ट किया गया है।

नोट: डेटाबेस सुरक्षा समूह एडब्ल्यूएस ईसी 2 सुरक्षा समूहों से अलग हो सकते हैं। यदि आपका आरडीएस उदाहरण क्लासिक/सार्वजनिक ईसी 2 में है, तो आपको आरडीएस यूआई के "डेटाबेस सुरक्षा समूह" खंड में जांच करनी चाहिए। वीपीसी उपयोगकर्ताओं के लिए, सुरक्षा समूह एक सामान्य वीपीसी सुरक्षा समूह होगा (नाम एसजी-एक्सxx आरडीएस इंस्टेंस के गुणों में सूचीबद्ध होगा)।

2) DNS की पुष्टि करना कोई समस्या नहीं है।

अमेज़ॅन विभाजित DNS का उपयोग करता है, इसलिए एडब्ल्यूएस के लिए बाहरी DNS लुकअप सार्वजनिक आईपी वापस कर देगा जबकि एडब्ल्यूएस के लिए एक लुकअप आंतरिक एक निजी आईपी वापस करेगा। अगर आपको संदेह है कि यह एक DNS मुद्दा है, तो क्या आपने पुष्टि की है कि विभिन्न आईपी विभिन्न उपलब्धता क्षेत्रों से वापस आये हैं? यदि विभिन्न एजेड अलग-अलग आईपी प्राप्त करते हैं, तो आपको एडब्ल्यूएस समर्थन से संपर्क करने की आवश्यकता होगी।

3) सॉकेट कनेक्शन स्थापित करके नेटवर्क कनेक्टिविटी की पुष्टि करें।

ट्रेसपैथ और ट्रैसरआउट जैसे उपकरण संभवतः मदद नहीं करेंगे क्योंकि आरडीएस वर्तमान में आईसीएमपी यातायात को छोड़ देता है।

पोर्ट 3306 (mysql, या postgres के लिए 5432) पर आरडीएस उदाहरण के लिए सॉकेट कनेक्शन स्थापित करने का प्रयास करके टेस्ट पोर्ट कनेक्टिविटी।आरडीएस उदाहरण के आईपी खोजने और या तो टेलनेट या nc का उपयोग करके प्रारंभ करें:

telnet x.x.x.x 3306 
nc -vz x.x.x.x 3306 

क) अपने कनेक्शन का प्रयास सफल नहीं होता है और तुरंत विफल रहता है, बंदरगाह संभावना अवरुद्ध या रिमोट होस्ट 'isn है, तो उस बंदरगाह पर एक सेवा चल रहा है। आगे की समस्या निवारण के लिए आपको AWS समर्थन संलग्न करने की आवश्यकता हो सकती है। यदि एडब्ल्यूएस के बाहर से कनेक्ट हो रहा है, तो पहले एडब्ल्यूएस के अंदर किसी अन्य इंस्टेंस से कनेक्ट करने का प्रयास करें (क्योंकि आपकी फ़ायरवॉल उन कनेक्शन को अवरुद्ध कर सकती है)।

ख) अपने कनेक्शन सफल नहीं है और आप समय समाप्त हो, पैकेट शायद गिरा दिया जा रहा है/एक फ़ायरवॉल द्वारा नजरअंदाज कर दिया या पैकेट एक अलग नेटवर्क पथ पर लौट रहे हैं। आप netstat -an | grep SYN चलाकर (एक अलग सीएलआई विंडो/सत्र से चलते समय और टेलनेट/एनसी कमांड के लिए टाइमआउट के लिए प्रतीक्षा करके) की पुष्टि कर सकते हैं। एसईएन राज्य में कनेक्शन का मतलब है कि आपने एक कनेक्शन अनुरोध भेजा है, लेकिन कुछ भी वापस नहीं मिला है (SYN_ACK या अस्वीकार/ब्लॉक)। आमतौर पर इसका मतलब है कि फ़ायरवॉल या सुरक्षा समूह पैकेट को अनदेखा या छोड़ रहा है।

यह सुनिश्चित करने के लिए जांचें कि आप अपने मेजबान और आरडीएस उदाहरण के बीच iptables या NAT गेटवे का उपयोग नहीं कर रहे हैं। यदि आप वीपीसी में हैं, तो यह भी सुनिश्चित करें कि आप स्रोत होस्ट से बहिष्कार/आउटबाउंड ट्रैफिक की अनुमति दें।

ग) यदि आपका सॉकेट कनेक्शन परीक्षण सफल रहा था, लेकिन आप एक mysql ग्राहक (CLI, कार्यक्षेत्र, एप्लिकेशन, आदि), netstat के उत्पादन पर एक नज़र के साथ कनेक्ट नहीं कर सकता क्या राज्य को देखने के लिए संबंध में (आरडीएस उदाहरण के वास्तविक आईपी पते के साथ xxxx की जगह) है:

netstat -an | grep x.x.x.x

यदि आप एक कनेक्शन जब टेलनेट या एनसी का उपयोग कर स्थापित मिल रहे थे, लेकिन जब एक का उपयोग कर आप 'SYN' राज्य को देखने के MySQL क्लाइंट, आप एक एमटीयू मुद्दे में चल रहे हो सकता है।

आरडीएस, जब लिखा गया है, तो पीएमटीयूडी (https://en.wikipedia.org/wiki/Path_MTU_Discovery#Problems_with_PMTUD) के लिए उपयोग किए जाने वाले आईसीएमपी पैकेट का समर्थन नहीं कर सकता है। यदि आप क्लासिकलिंक के माध्यम से क्लासिक ec2 इंस्टेंस से वीपीसी में आरडीएस या रेडशफ्ट तक पहुंचने का प्रयास कर रहे हैं तो यह एक समस्या हो सकती है। तो कम MTU काम किया

sudo ip link show 
# take note of the current MTU (likely 1500 or 9001) 
sudo ip link set dev eth0 mtu 1400 

, मदद के लिए एडब्ल्यूएस ग्राहक सहायता के साथ पालन करने के लिए सुनिश्चित हो सकता है और है कि आप एक MTU मुद्दे को देख रहे हैं करने के लिए कनेक्ट करते समय उल्लेख: निम्नलिखित के साथ MTU को कम करने का प्रयास करें, तो फिर से परीक्षण आपका आरडीएस उदाहरण। यह तब हो सकता है जब टीसीपी पैकेट सुरंग के लिए encapsulation के साथ लपेटा जाता है, जिसके परिणामस्वरूप पैकेट डेटा/पेलोड के लिए कम उपयोग योग्य एमटीयू होता है। स्रोत सर्वर पर एमटीयू को कम करने से लपेटे हुए पैकेट अभी भी सीमा के नीचे फिट हो सकते हैं।

यदि यह काम नहीं करता है, तो अपने एमटीयू को इसके डिफ़ॉल्ट पर वापस सेट करें और आगे की समस्या निवारण के लिए एडब्ल्यूएस समर्थन संलग्न करें।

+0

यह एक शानदार जवाब है! धन्यवाद! –

-3

Amazon doc के अनुसार, हम का उपयोग करना चाहिए:

PROMPT> mysql -h <endpoint> -P 3306 -u <mymasteruser> -p 

जहां endpoint और mymasteruser (उपयोगकर्ता नाम) अपने आरडीएस उदाहरण से कर रहे हैं।

मैंने एंडपॉइंट (****। Us-east-1.rds.amazonaws.com) के बजाय सीधे आईपी पब्लिक एड्रेस (एंडपॉइंट के) का उपयोग करके उस समस्या को हल किया। आप आईपी सार्वजनिक पता " पिंग "कमांड (पिंग ****। us-east-1.rds.amazonaws।कॉम)

+0

आप क्या करेंगे? यदि आपका आरडीएस डीबी इंस्टेंस निजी सबनेट –

7

जबकि मार्क की समस्या बहु-एजेड रूटिंग & ईसी 2 क्लासिक के साथ कुछ करने लगती थी, मैं आज भी इसी समस्या में भाग गया।

इसे ठीक करने के लिए, मैं सुरक्षा समूह है कि मेरे EC2 उदाहरण से दो निजी IP पते जोड़कर मेरी आरडीएस उदाहरण के साथ स्वचालित रूप से बनाया गया था संशोधित।

Adding inbound rules to my RDS instance

यह एक काफी स्पष्ट समस्या थी, लेकिन मैं सामान्य रूप में एडब्ल्यूएस के लिए नया हूँ, इसलिए उम्मीद है कि इस अपने आप को जैसे अन्य लोगों के लिए उपयोगी है।

+0

में है, तो मुझे "आईपी" के रूप में कस्टम आईपी के नीचे विकल्प मिला, कि चयन पर मेरे आईपी ने समस्या हल की। ऊपर और पहले @ sapenove द्वारा टिप के लिए धन्यवाद। – Yoku

26

मैं इसी तरह की समस्या थी, जब मैं एक नया EC2 उदाहरण काता, लेकिन भीतर का आईपी पते के आरडीएस सुरक्षा समूह मेरी आरडीएस उदाहरण के बंदरगाह 3306 से कनेक्ट करने की अनुमति दी में स्थापित करने को नहीं बदला।

भ्रमित सा आरडीएस डैशबोर्ड में एक विकल्प, सुरक्षा समूह कहा जाता था। आपको समस्या को हल करने के लिए इसकी आवश्यकता नहीं है।

आपको वास्तव में क्या चाहिए, आरडीएस उदाहरणों की सूची में जाएं, उस इंस्टेंस पर क्लिक करें जिसे आप कनेक्ट करने का प्रयास कर रहे हैं, फिर मध्य टैब पर क्लिक करें, सुरक्षा और नेटवर्क अनुभाग का पता लगाएं और सुरक्षा समूह के नाम पर क्लिक करें।

Screenshot of RDS Dashboard

यह एक नया ब्राउज़र टैब या सुरक्षा समूह के विवरण के साथ विंडो खुल जाएगी। नीचे भाग में कई टैब का पता लगाएँ, भीतर टैब का चयन करें और क्लिक संपादित बटन।

Screenshot of VPC Security groups

अपने EC2 उदाहरण या IPv4 CIDR ब्लॉक, उदा का आईपी पता करने के लिए मूल्य बदलें

174.33.0.0/16

अपने उदाहरण में यह मान, आप कर सकते हैं या तो ssh प्राप्त करने के लिए और ifconfig चलाने के लिए या ब्राउज़र में EC2 प्रबंधक चलाने के लिए और अपने उदाहरण विवरण में निजी आईपी के मान का पता।

+0

धन्यवाद, यह पूरी तरह से काम किया! मुझे आश्चर्य है कि क्यों एक नया सुरक्षा समूह बनाना मेरे लिए काम नहीं करता था। मुझे लगता है कि मैं गलत समझ रहा हूं कि सुरक्षा समूह वास्तव में क्या करते हैं। – Abs

+0

वाह !!!! आपको बहुत बहुत धन्यवाद मेरे दोस्त घंटे और घंटे कोई सफलता मैं बस किया था के साथ इस सामान के साथ काम कर के रूप में आप ने कहा और 'देखा' के बाद, यह काम कर रहा !!!!! धन्यवाद!! मैं आपका जवाब बचा रहा हूं, इसलिए जब मुझे यह समस्या फिर मिलती है तो मेरे पास यह है :) –

1

मैं आज समान समस्या थी जब मेरे EC2 उदाहरण अचानक आरडीएस उदाहरण के लिए उपयोग खो दिया है और Wordpress काम करना बंद कर। सुरक्षा समूह सही थे और मैं ईसी 2 इंस्टेंस पर कंसोल से MySQL से कनेक्ट भी कर सकता था लेकिन PHP से नहीं। ईसी 2 सर्वर को पुनरारंभ करने के किसी कारण से मुझे मदद मिली।

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