मैंने ईसी 2 इंस्टेंस (ईसी 2_आईपी) में स्प्रिंग-बूट डॉकर कंटेनर स्थापित किया है और मेरे पास एक अलग वीएम में होस्ट किया गया एक MySQL है। मैंने सत्यापित किया है कि mysql होस्ट (MYSQL_IP) डॉकटर कंटेनर को होस्ट करने वाले EC2 इंस्टेंस से पहुँचा जा सकता है।

मैं docker रन के दौरान docker पर्यावरण चर का उपयोग करके spring.datasource.url पैरामीटर पास कर रहा हूं।

स्प्रिंग बूट ऐप उपयोगकर्ता को db_user@EC2_IP त्रुटि संदेश पहुंच के साथ शिकायत करने में विफल रहता है। यह वह हिस्सा है जिसे मैं समझने और ठीक करने में असमर्थ हूं। मुझे समझ में नहीं आता कि यह db_user@MYSQL_IP के बजाय EC2_IP से कनेक्ट करने का प्रयास क्यों कर रहा है।

मैंने एक डॉकर निरीक्षण किया और मैंने सत्यापित किया कि spring.datasoure.url के लिए पर्यावरण चर सही ढंग से पारित किया गया है और यह db_user@MYSQL_IP:3306 है।

मैंने इस समस्या को ठीक करने की कोशिश में घंटों बिताए हैं, लेकिन कोई किस्मत नहीं। किसी भी मदद की सराहना की जाती है।

टिप्पणियों के आधार पर स्पष्ट करने के लिए, मेरे पास डेटा स्रोत सही तरीके से कॉन्फ़िगर किया गया है।

डॉकर निरीक्षण के अंदर, आर्ग का मूल्य:

-Dspring.datasource.url=jdbc:mysql://MYSQL_IP:3306/test

साथ ही, मैंने जांच की कि क्या मैं कुछ अमान्य आईपी (उदाहरण) कुछ यादृच्छिक पाठ पास करता हूं, तो यह एक त्रुटि फेंकता है कि होस्ट अमान्य है (यह पुष्टि करता है, यह उस होस्ट को ले रहा है जिसे मैं पास करता हूं)। हालांकि, अगर मैं बाहरी आईपी से कॉन्फ़िगर करता हूं, तो ऐसा लगता है कि यह होस्ट आईपी पते (ईसी 2_आईपी) को हल करता है।

0
Maximus 18 अगस्त 2017, 08:17

1 उत्तर

सबसे बढ़िया उत्तर

अंत में समस्या का पता चला, यह मेरे डीबी उपयोगकर्ता अनुमतियों के साथ एक मुद्दा है। यह मेरी mysql उपयोगकर्ता अनुमतियों के साथ एक मुद्दा निकला। यह डॉकर या स्प्रिंगबूट के साथ कोई समस्या नहीं थी।

रूट उपयोगकर्ता को छोड़कर उपयोगकर्ता 'परीक्षण' @ 'लोकलहोस्ट' (पासवर्ड का उपयोग करके: हाँ) के लिए प्रवेश निषेध

अगर मैं केवल त्रुटि संदेश पर स्पष्ट रूप से ध्यान केंद्रित करता और समझता कि इसमें क्या कहा गया है, तो मैंने सभी का समय बर्बाद नहीं किया होता।

1
Maximus 18 अगस्त 2017, 17:55