اجعل MySQL يستخدم منفذ TCP المُمرَّر
تجنّب اختيار مقبس Unix محلي عندما يُفترض أن يتصل عميل MySQL عبر تمرير SSH TCP.
يستمع تمرير SSH على المنفذ المحلي 13306، لكن mysql ما زال يتصل بقاعدة البيانات المحلية—أو يبلّغ بأن مقبسه المحلي مفقود. على Unix، يمكن لعميل MySQL الذي يُعطى localhost أن يختار مقبس Unix بدلًا من TCP. وتقديم منفذ لا يغيّر ذلك الخيار بالضرورة.
بالنسبة إلى تمرير TCP معتمد قائم، اجعل البروتوكول صريحًا:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
اسم المستخدم للتوضيح فقط؛ وخيار كلمة المرور يطلب إدخالًا تفاعليًا. يتصل الأمر بمستمع TCP المحلي بدلًا من مقبس Unix.
أبقِ عمليتي الدخول منفصلتين
يمكن أن يتخذ مسار SSH الثابت هذا الشكل:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
يصل خادم SSH في البوابة إلى db.internal:3306. ثم يصادق MySQL على حساب قاعدة البيانات عبر ذلك التدفق من البايتات. مفتاح SSH المقبول لا يمنح دخولًا إلى قاعدة البيانات، وقيود مصدر قاعدة البيانات ترى الاتصال قادمًا من ذلك الجانب من المسار.
هذا محوّل TCP ثابت، وليس إعداد SOCKS يستخدمه mysql. لا يحتاج التطبيق إلى تفاوض SOCKS لأن نقطة نهاية التمرير لها هدف واحد محدد مسبقًا.
احتفظ بهوية TLS المقصودة لقاعدة البيانات وسياسة الشهادات حيثما استُخدمت. ربط المقبس بالعنوان loopback لا يجعل شهادة قاعدة بيانات صالحة لاسم خدمة مختلف. اتصال TCP محلي ناجح يحسم خيار النقل، لا مصادقة قاعدة البيانات اللاحقة ولا فحوص TLS.