5

मैं 2 अलग बादल एसक्यूएल उदाहरणों से कनेक्ट करने के बादल एसक्यूएल प्रॉक्सी का उपयोग करने का प्रयास कर रहा हूँ ...क्लाउड एसक्यूएल प्रॉक्सी का उपयोग कर एकाधिक क्लाउडएसक्यूएल उदाहरणों से कनेक्ट हो रहा है?

डॉक्स में मैं Use -instances parameter. For multiple instances, use a comma-separated list. लेकिन लगता है कि देखो बनाने के लिए कैसे नहीं के बारे में एक लाइन मिल गया। https://cloud.google.com/sql/docs/sql-proxy। मैं गूगल कंटेनर इंजन का उपयोग कर रहा हूँ, और एक एकल CloudSQL उदाहरण के साथ यह बहुत अच्छा काम करता है:

-instances=starchup-147119:us-central1:first-db,starchup-147119:us-central1:second-db=tcp:3306 
and 
-instances=starchup-147119:us-central1:first-db=tcp:3306,starchup-147119:us-central1:second-db=tcp:3306 

लेकिन वे सभी विभिन्न दे:

- name: cloudsql-proxy 
    image: b.gcr.io/cloudsql-docker/gce-proxy:1.05 
    command: ["/cloud_sql_proxy", "--dir=/cloudsql", 
      "-instances=starchup-147119:us-central1:first-db=tcp:3306", 
      "-credential_file=/secrets/cloudsql/credentials.json"] 
    volumeMounts: 
    - name: cloudsql-oauth-credentials 
    mountPath: /secrets/cloudsql 
    readOnly: true 
    - name: ssl-certs 
    mountPath: /etc/ssl/certs 

लेकिन मैं इस तरह के रूप -instances अनुभाग की कोशिश की है कई के लिए त्रुटियों; ECONNREFUSED 127.0.0.1:3306, ER_DBACCESS_DENIED_ERROR, और ER_ACCESS_DENIED_ERROR

किसी भी मदद की बहुत सराहना की जाती है!

उत्तर

6

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

-instances=project:region:db=tcp:3306,project:region:db-2=tcp:3307 

मैं 3306 और 3307 यहां इस्तेमाल किया है, लेकिन आप किसी भी बंदरगाहों आप चाहते हैं का उपयोग कर सकते हैं! सुनिश्चित करें कि आपके बाकी कंटेनर इंजन कॉन्फ़िगरेशन इन बंदरगाहों पर नोड्स के बीच संचार की अनुमति देता है (शायद यह डिफ़ॉल्ट रूप से सच है, मैं जीकेई का उपयोग नहीं करता)।

अधिकांश mysql ड्राइवर डिफ़ॉल्ट रूप से पोर्ट 3306 से कनेक्ट होते हैं लेकिन किसी अन्य पोर्ट को निर्दिष्ट करने का कोई तरीका होता है। आपको दूसरे कोड के लिए चुने गए विभिन्न पोर्ट से कनेक्ट करने के लिए अपने कोड की व्यवस्था करनी होगी।

+0

अब तक बहुत अच्छा काम करता है! धन्यवाद! – glesage

+0

धन्यवाद, मैं इसे एक पॉड से कनेक्ट करने के लिए उपयोग कर रहा हूं 1) पढ़ने/लिखने यातायात के लिए मास्टर डेटाबेस 2) केवल पढ़ने के लिए यातायात के लिए केवल पढ़ने के लिए प्रतिकृति। हैरानी की बात यह जवाब एकमात्र जगह है जिसे मैं उस जानकारी के लिए पा सकता हूं। – jorfus

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