MySQL ला फॉरवर्ड केलेला TCP पोर्ट वापरण्यास भाग पाडा
जेव्हा MySQL क्लायंटने SSH TCP फॉरवर्डिंगद्वारे जोडणे अपेक्षित असेल तेव्हा स्थानिक Unix सॉकेट निवडणे टाळा.
SSH फॉरवर्डिंग स्थानिक पोर्ट 13306 वर ऐकते, पण mysql तरीही स्थानिक डेटाबेसशी जोडते—किंवा त्याचे स्थानिक सॉकेट नाही असे सांगते. Unix वर localhost दिलेला MySQL क्लायंट TCPऐवजी Unix सॉकेट निवडू शकतो. पोर्ट दिल्याने ती निवड बदलतेच असे नाही.
विद्यमान मंजूर TCP फॉरवर्डसाठी प्रोटोकॉल स्पष्ट करा:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
वापरकर्तानाव केवळ उदाहरणासाठी आहे; पासवर्ड पर्याय इंटरॅक्टिव्ह इनपुट मागतो. हा आदेश Unix सॉकेटऐवजी स्थानिक TCP श्रोत्याशी जोडतो.
दोन्ही लॉगिन स्वतंत्र ठेवा
स्थिर SSH मार्गाचा हा आकार असू शकतो:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
गेटवेचा SSH सर्व्हर db.internal:3306 पर्यंत पोहोचतो. नंतर MySQL त्या बाइट प्रवाहातून डेटाबेस खाते प्रमाणित करतो. स्वीकारलेली SSH की डेटाबेस लॉगिन देत नाही, आणि डेटाबेसचे स्रोत निर्बंध कनेक्शन मार्गाच्या त्या बाजूने येत असल्याचे पाहतात.
हे स्थिर TCP अॅडॉप्टर आहे, mysql वापरत असलेली SOCKS सेटिंग नाही. फॉरवर्डिंग एंडपॉइंटला एक पूर्वनिर्धारित लक्ष्य असल्याने अनुप्रयोगाला SOCKS वाटाघाटीची गरज नाही.
जिथे वापरले जाते तिथे इच्छित डेटाबेस TLS ओळख आणि प्रमाणपत्र धोरण टिकवा. सॉकेट loopback ला जोडल्याने डेटाबेस प्रमाणपत्र दुसऱ्या सेवा नावासाठी वैध होत नाही. यशस्वी स्थानिक TCP कनेक्शन वाहतूक निवडीचा निर्णय घेते, नंतरचे डेटाबेस प्रमाणीकरण किंवा TLS तपासण्या नाही.