تخطَّ إلى المحتوى
المحتويات
المواقع الإلكترونية

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

ترجمة آلية، النص الأصلي باللغة الإنجليزية متاح عند الحاجة.

قاعدة بيانات موقعك لا تستجيب إلا على عنوان الاسترجاع الذاتي (loopback) الخاص بالخادم نفسه، لذلك لا يمكن لأداة سطح مكتب مثل TablePlus أو Sequel Ace أو DBeaver أو MySQL Workbench الاتصال بها مباشرة. نفق SSH يمنح هذه الأدوات منفذًا محليًا يُوجَّه إلى قاعدة البيانات، وهذه هي الطريقة التي تحصل بها على واجهة رسومية سليمة للوصول إلى بياناتك دون فتح MySQL على الإنترنت.

لماذا يلزم وجود نفق

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

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

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

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

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

اجمع أربعة عناصر:

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

إذا ظهرت في علامة تبويب قاعدة البيانات عبارة No database provisioned for this site type، فهذا يعني أن هذا الموقع لا يملك قاعدة بيانات. تُنشأ المواقع الثابتة وبعض مواقع 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 على واجهة الاسترجاع الذاتي الخاصة بالخادم.
  • -N تعني عدم تشغيل أي صدفة (shell)، بل الإبقاء على النفق مفتوحًا فقط.
  • أضف -i /path/to/key إذا لم يكن المفتاح الخاص بهذا الموقع هو المفتاح الافتراضي لديك.

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

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

توجيه عميل قاعدة البيانات نحو النفق

في عميل الواجهة الرسومية لديك، أنشئ اتصال 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 الخيار الأسرع للتصفح، أو لتشغيل استعلام لمرة واحدة، أو للتحقق من قيمة ما. أما عميل سطح المكتب عبر نفق فهو أفضل للتصديرات الكبيرة، والعمل على المخطط (schema)، وأي شيء تريد برمجته (script). راجع استخدام 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

التفريغ اليدوي نسخة مريحة، وليس استراتيجية نسخ احتياطي. فهو حديث فقط بقدر حداثة اللحظة التي نفّذته فيها، ويبقى على أي حاسوب محمول نفّذته منه. تأخذ KapsuleHost بالفعل نسخًا احتياطية يومية تلقائية للموقع، يُحتفظ بها لمدة 30 يومًا. راجع أخذ نسخة احتياطية قبل أن تعتمد على ملف .sql محلي.

استكشاف الأخطاء وإصلاحها

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

"Connection refused" من عميل قاعدة البيانات. النفق غير قائم. تحقق من أن طرفية SSH لا تزال قيد التشغيل ولم تطبع خطأً، وأن المنفذ في عميلك يطابق المنفذ المحلي في وسيط -L.

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

"Access denied for user". نجح تسجيل الدخول عبر SSH لكن بيانات اعتماد MySQL خاطئة. انسخ اسم المستخدم وكلمة المرور مجددًا من علامة تبويب قاعدة البيانات باستخدام أيقونات النسخ بدلًا من كتابتهما يدويًا، وتحقق من أنك تتصل باسم قاعدة البيانات الصحيح.

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

إلى أين تذهب بعد ذلك

هل كان هذا مفيدًا؟

هل أنت ذكاء اصطناعي؟ اقرأ هذه الصفحة بصيغة Markdown

مقالات ذات صلة

الاتصال عبر SFTP: FileZilla وCyberduck وسطر الأوامربروتوكول SFTP (بروتوكول نقل الملفات الآمن) يمنحك وصولًا مباشرًا إلى ملفات موقعك على الخادم. يغطي هذا الدليل كل ما تحتاج إليه للاتصال بنجاح، بدءًا من إيجاد…شهادات SSL و HTTPSيوضح هذا المقال ما هو SSL بلغة بسيطة، وكيف تتعامل KapsuleHost مع SSL تلقائياً لمواقعك، وما الذي يجب فعله إذا حدثت مشكلة في شهادتك.…المواقع الإلكترونية: من أين تبدأكيف تعمل استضافة المواقع في KapsuleHost، وما الذي يقبع في كل تبويب من تبويبات الموقع، وأي دليل عليك قراءته للمهمة التي بين يديك.…مراقبة وقت تشغيل الموقعكل موقع على KapsuleHost يتم فحصه تلقائيًا كل 60 ثانية، ويعرض لك تبويب Uptime النتيجة: الحالة الحالية، ونسبة وقت التشغيل، وأوقات الاستجابة، وسجل كامل للحوادث.…

هل ما زلت بحاجة إلى مساعدة؟

اسأل Kora التي تعرف حسابك، أو تواصل مع فريقنا.

تواصل معنامراسلة الدعم