"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إصلاح مشكلة معلمة mysqli_connect() عند الاتصال بـ MySQL عبر SSH باستخدام PHP؟

كيفية إصلاح مشكلة معلمة mysqli_connect() عند الاتصال بـ MySQL عبر SSH باستخدام PHP؟

تم النشر بتاريخ 2024-11-06
تصفح:944

How to Fix mysqli_connect() Parameter Issue When Connecting to MySQL over SSH with PHP?

الاتصال بخادم MySQL عبر SSH في PHP

قد يكون إنشاء اتصال بقاعدة بيانات MySQL مستضافة على جهاز Linux بعيد عبر SSH باستخدام وظائف PHP أمرًا صعبًا. قد يحدث الخطأ "يتوقع mysqli_connect() أن تكون المعلمة 6 عبارة عن سلسلة، والمورد معطى" عند استخدام الكود المقدم.

فهم المشكلة

يحاول الكود استخدام وظيفة mysqli_connect() لـ الاتصال بقاعدة البيانات من خلال نفق SSH. ومع ذلك، تتوقع الدالة mysqli_connect() سلسلة كمعلمة سادسة (تشير إلى النفق)، بينما ترجع الدالة ssh2_tunnel() موردًا.

حل المشكلة باستخدام نفق SSH

لحل المشكلة في هذه المشكلة، قم بإعداد نفق SSH لخادم قاعدة بيانات MySQL. إحدى الطرق الفعالة هي استخدام وكيل Jumpbox لتحسينات الأمان. يتضمن هذا الأسلوب إنشاء نفق إعادة توجيه منفذ محلي باستخدام عميل SSH، مما يؤدي بشكل فعال إلى إنشاء قناة آمنة بين جهازك المحلي وخادم قاعدة البيانات.

دليل خطوة بخطوة

استخدام أدوات سطر الأوامر (إعداد نفق SSH):

  1. من المحطة المحلية لديك، قم بتنفيذ أمر SSH التالي:
ssh -fNg -L 3307:10.3.1.55:3306 [email protected] 
  • استبدل '3307' برقم المنفذ المحلي المفضل لديك.
  • استبدل '10.3.1.55:3306' بعنوان IP والمنفذ لخادم قاعدة بيانات MySQL.
  • استبدل '[email protected]' ببيانات اعتماد تسجيل الدخول إلى Jumpbox.

الاتصال بقاعدة البيانات:

  1. في برنامج PHP النصي الخاص بك، قم بتأسيس اتصال قاعدة البيانات باستخدام mysqli_connect():
$mysqli = mysqli_connect("127.0.0.1:3307", "DB_USERNAME", "DB_PASSWORD", "dbname");
    استخدم رقم المنفذ المحلي (3307 في هذا المثال) المحدد في إعداد نفق SSH.

اعتبارات إضافية:

    استخدام عميل GUI MySQL مع دعم نفق SSH (على سبيل المثال، Visual Studio Code) يمكن أن يبسط عملية الإعداد.
  • يمكن أن تعزز مصادقة المفتاح الخاص الأمان. استخدم المفتاح '-i' في أمر SSH لتحديد مسار المفتاح الخاص.
  • حركة المرور عبر النفق من خلال Jumpbox/Bastion Host للتخفيف من ثغرات الوصول المباشر إلى قاعدة البيانات.
بيان الافراج أعيد طبع هذه المقالة على: 1729520899 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3