المواقع الإلكترونية

الاتصال بقاعدة البيانات الخاصة بك عبر نفق SSH

Your site's MySQL server only listens on the server's own loopback address, so a desktop tool such as TablePlus, Sequel Ace, DBeaver or MySQL Workbench cannot dial it directly. An SSH tunnel gives…

عنوان المقال (للسياق فقط، لا تضمنه في الناتج): الاتصال بقاعدة البيانات الخاصة بك عبر نفق SSH

لماذا يكون النفق ضروريًا

افتح المواقع، انقر على الموقع، ثم الملفات، ثم قاعدة البيانات. تعرض بطاقة تفاصيل الاتصال المضيف باسم 127.0.0.1 والمنفذ باسم 3306. هذا ليس عنصر نائب: قاعدة البيانات تقبل الاتصالات من الجهاز التي تعمل عليه فقط. لا يمكن لأي شيء على الإنترنت العام الوصول إلى المنفذ 3306، مما يزيل فئة كاملة من الهجمات.

يغلق نفق SSH هذه الفجوة بأمان. يفتح عميل SSH الخاص بك منفذًا على جهاز الكمبيوتر المحمول الخاص بك، ويشفر كل شيء ترسله إليه، ويسلمه إلى قاعدة البيانات من داخل الخادم، تمامًا كما لو كانت عملية محلية قد اتصلت.

علامة التبويب "قاعدة البيانات" التي تعرض تفاصيل الاتصال في KPanel

ما تحتاجه أولاً

النفق هو اتصال SSH، لذا تحتاج إلى مفتاح SSH مسجل على الموقع قبل أي شيء من هذا. اتبع إضافة مفاتيح SSH إلى موقع أولاً، ثم عد هنا.

جمع أربعة أشياء:

  • مضيف SSH والمنفذ واسم المستخدم، من الملفات، ثم مفاتيح SSH، في بطاقة تفاصيل الاتصال.
  • اسم قاعدة البيانات واسم المستخدم وكلمة المرور، من الملفات، ثم قاعدة البيانات. انقر على أيقونة العين لكشف كلمة المرور وأيقونة النسخ لوضعها على الحافظة الخاصة بك.

إذا كانت علامة التبويب "قاعدة البيانات" تقول لم يتم توفير قاعدة بيانات لنوع الموقع هذا، فهذا الموقع لا يملك واحدة. لا تحتوي المواقع الثابتة وبعض مواقع Node.js على قاعدة بيانات عند إنشاؤها.

فتح النفق من طرف نهاية

الشكل العام هو: إعادة توجيه منفذ محلي إلى 127.0.0.1:3306 على الجانب الآخر من اتصال SSH.

ssh -N -L 3307:127.0.0.1:3306 <ssh-username>@<ssh-host> -p <ssh-port>
  • -L 3307:127.0.0.1:3306 يفتح المنفذ 3307 على جهازك ويعيد توجيهه إلى المنفذ 3306 على واجهة loopback الخاصة بالخادم.
  • -N يقول عدم تشغيل shell، فقط الحفاظ على النفق مفتوحًا.
  • أضف -i /path/to/key إذا لم يكن المفتاح الخاص بهذا الموقع هو الافتراضي الخاص بك.

اترك نافذة الطرف النهاية هذه قيد التشغيل. بينما هي مفتوحة، 127.0.0.1:3307 على جهاز الكمبيوتر المحمول الخاص بك هي قاعدة بيانات الموقع.

استخدم 3307 محليًا بدلاً من 3306. إذا كان لديك MySQL أو MariaDB مثبتة على جهازك الخاص، فهي تستخدم بالفعل 3306، وسيفشل النفق في الربط برسالة خطأ "العنوان قيد الاستخدام بالفعل". أي منفذ محلي مجاني يعمل.

توجيه عميل قاعدة البيانات الخاص بك إلى النفق

في عميل الواجهة الرسومية الخاص بك، أنشئ اتصال MySQL عادي بهذه القيم:

الحقلالقيمة
المضيف127.0.0.1
المنفذ3307 (أي منفذ محلي قمت بإعادة توجيهه)
المستخدماسم المستخدم من علامة التبويب قاعدة البيانات
كلمة المروركلمة المرور من علامة التبويب قاعدة البيانات
قاعدة البياناتاسم قاعدة البيانات من علامة التبويب قاعدة البيانات

لا تضع مضيف SSH في حقل المضيف. بقدر ما يتعلق الأمر بالعميل، فإنه يتحدث إلى قاعدة بيانات على جهازك الخاص.

العملاء الذين لديهم علامة تبويب SSH مدمجة

يمكن لـ TablePlus و Sequel Ace و DBeaver و MySQL Workbench جميعها إدارة النفق بأنفسها، مما يوفر الحفاظ على نافذة طرف نهاية مفتوحة. ملء مجموعتين من الحقول:

  • قسم SSH: المضيف والمنفذ واسم المستخدم وملف المفتاح الخاص من صفحة مفاتيح SSH.
  • قسم قاعدة البيانات: المضيف 127.0.0.1، المنفذ 3306، بالإضافة إلى اسم قاعدة البيانات واسم المستخدم وكلمة المرور من علامة التبويب قاعدة البيانات.

عندما ينشئ العميل النفق، استخدم 3306 في قسم قاعدة البيانات بدلاً من منفذك المحلي المعاد توجيهه. ينضم العميل من وجهة نظر الخادم، لذلك يرى المنفذ الفعلي.

استخدام phpMyAdmin بدلاً من ذلك

إذا كنت تريد فقط نظرة سريعة على جدول، فلا تحتاج إلى نفق على الإطلاق. تحتوي علامة التبويب "قاعدة البيانات" على بطاقة phpMyAdmin مع زر فتح phpMyAdmin. يوقعك عليها عبر KPanel، لذلك لا توجد كلمة مرور منفصلة للتذكر، وتفتح في علامة تبويب جديدة تشير بالفعل إلى قاعدة بيانات هذا الموقع.

phpMyAdmin هي الخيار الأسرع للاستعراض أو تشغيل استعلام لمرة واحدة أو التحقق من القيمة. العميل المكتبي فوق نفق أفضل للتصديرات الكبيرة وعمل المخطط وأي شيء تريد أن تكتبه. انظر استخدام phpMyAdmin للمسار الموجه بالمتصفح.

تشغيل الاستعلامات والتفريغات عبر النفق

مع فتح النفق، تعمل أدوات سطر الأوامر القياسية بشكل طبيعي، موجهة إلى منفذك المحلي المعاد توجيهه:

mysql -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name>

mysqldump -h 127.0.0.1 -P 3307 -u <db-user> -p <db-name> > backup.sql

التفريغ اليدوي هو نسخة راحة، وليس استراتيجية نسخ احتياطي. إنه بنفس جودة اللحظة التي قمت فيها بتشغيله، وهو يعيش على أي جهاز كمبيوتر محمول قمت بتشغيله عليه. يأخذ Kapsule بالفعل نسخ احتياطية تلقائية يومية من الموقع، محفوظة لمدة 30 يومًا. انظر أخذ نسخة احتياطية قبل الاعتماد على ملف .sql محلي.

استكشاف الأخطاء

"العنوان قيد الاستخدام بالفعل" عند فتح النفق. هناك شيء على جهازك بالفعل على هذا المنفذ المحلي. اختر واحدًا آخر، على سبيل المثال -L 3399:127.0.0.1:3306، وغيّر المنفذ في عميلك ليطابق.

"الاتصال مرفوض" من عميل قاعدة البيانات. النفق غير مفتوح. تحقق من أن طرف نهاية SSH لا يزال قيد التشغيل ولم يطبع خطأ، وأن المنفذ في عميلك يطابق المنفذ المحلي في الحجة -L.

SSH يتصل لكن العميل لا يزال ينتهي انتظاره. أكد أنك أعدت توجيه إلى 127.0.0.1:3306 وليس إلى اسم المضيف العام. إعادة التوجيه إلى الاسم العام تطلب من الخادم الوصول إلى قاعدة البيانات عبر الإنترنت، وهو بالضبط ما يتم حجبه.

"تم رفض الوصول للمستخدم". نجح تسجيل الدخول إلى SSH لكن بيانات اعتماد MySQL غير صحيحة. انسخ اسم المستخدم وكلمة المرور مرة أخرى من علامة التبويب قاعدة البيانات باستخدام أيقونات النسخ بدلاً من إعادة الكتابة، وتحقق من أنك تتصل باسم قاعدة البيانات الصحيح.

الإذن مرفوض (publickey) قبل حتى أن تصل إلى MySQL. هذا هو طبقة SSH، وليس قاعدة البيانات. اعمل من خلال قسم استكشاف الأخطاء في إضافة مفاتيح SSH إلى موقع.

الخطوات التالية

هل تحتاج إلى مساعدة إضافية؟

راسلنا على البريد الإلكتروني support@kapsulehost.com أو افتح محادثة في KPanel.

فتح KPanel
الاتصال بقاعدة البيانات الخاصة بك عبر نفق SSH