متى تحتاج إلى الوصول عن بُعد

الوصول عن بُعد يتيح لك الاتصال بقاعدة بيانات MySQL من:

  • بيئة تطوير محلية (XAMPP أو MAMP أو Docker)
  • أدوات قواعد البيانات على سطح المكتب (MySQL Workbench أو DBeaver أو Sequel Pro)
  • سيرفرات أخرى أو تطبيقات سحابية
  • سكربتات آلية وأدوات نسخ احتياطي
ملاحظة أمنية: فتح MySQL للوصول عن بُعد يفتح بابًا لخطر أمني محتمل. فعّله عند الحاجة فقط، واستخدم دائمًا كلمات مرور قوية.

تفعيل الوصول عن بُعد

الخطوة 1: أضف المضيف البعيد

  1. سجّل الدخول إلى EGPNL
  2. افتح DatabasesRemote MySQL
  3. اكتب عنوان IP أو اسم المضيف الخاص بك
  4. اضغط Add Host
اعرف عنوان IP الخاص بك: افتح whatismyipaddress.com لمعرفة عنوان IP العام الحالي.

الخطوة 2: اضبط مستخدم قاعدة البيانات

تأكد أن مستخدم قاعدة البيانات يملك الصلاحيات المناسبة:

  1. افتح MySQL Databases
  2. تأكد أن المستخدم يملك All Privileges
  3. أو أنشئ مستخدمًا مخصّصًا للاتصال عن بُعد

إعدادات الاتصال

الإعداد القيمة
اسم المضيف عنوان IP لسيرفرك أو yourdomain.com
المنفذ 3306 (منفذ MySQL الافتراضي)
قاعدة البيانات your_database_name
اسم المستخدم your_database_user
كلمة المرور your_database_password

الاتصال عبر MySQL Workbench

  1. افتح MySQL Workbench
  2. اضغط + لإضافة اتصال جديد
  3. اكتب اسمًا للاتصال
  4. اضبط Hostname على عنوان سيرفرك
  5. اضبط Port على 3306
  6. اكتب اسم المستخدم
  7. اضغط Store in Vault لحفظ كلمة المرور
  8. اضغط Test Connection
  9. اضغط OK للحفظ

الاتصال من سطر الأوامر

# Basic connection
mysql -h your-server.com -P 3306 -u username -p database_name

# Example
mysql -h server.egphp.com -P 3306 -u mysite_user -p mysite_db

الاتصال من PHP (تطبيق بعيد)

<?php
$host = 'your-server.com';  // Remote server hostname
$port = 3306;
$database = 'your_database';
$username = 'your_user';
$password = 'your_password';

// PDO Connection
try {
    $pdo = new PDO(
        "mysql:host=$host;port=$port;dbname=$database;charset=utf8mb4",
        $username,
        $password,
        [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
    );
    echo "Connected successfully!";
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

السماح لكل المضيفين (Wildcard)

للسماح بالاتصال من أي عنوان IP:

  1. افتح Remote MySQL في EGPNL
  2. اكتب % في خانة المضيف
  3. اضغط Add Host
غير مستحسن: السماح لكل المضيفين (%) خطر أمني. استخدمه للاختبار فقط ثم أزله بعدها. واعتمد على عناوين IP محدّدة كلما أمكن.

نفق SSH (الخيار الأكثر أمانًا)

لأعلى درجة أمان، اتصل عبر نفق SSH:

نفق SSH من سطر الأوامر

# Create tunnel
ssh -L 3307:localhost:3306 user@your-server.com

# In another terminal, connect via tunnel
mysql -h 127.0.0.1 -P 3307 -u dbuser -p database_name

نفق SSH داخل MySQL Workbench

  1. أنشئ اتصالًا جديدًا
  2. اضبط طريقة الاتصال على Standard TCP/IP over SSH
  3. اسم مضيف SSH: your-server.com
  4. اسم مستخدم SSH: المستخدم الخاص بك
  5. ملف مفتاح SSH: مفتاحك الخاص (اختياري)
  6. اسم مضيف MySQL: localhost (أو 127.0.0.1)
  7. اكتب بيانات دخول قاعدة البيانات
لماذا نفق SSH؟ أنفاق SSH تشفّر كل حركة البيانات، ولا تحتاج إلى فتح منفذ MySQL رقم 3306 على الإنترنت.

حل المشكلات

رفض الاتصال (Connection Refused)

  • تأكد من إضافة عنوان IP إلى Remote MySQL
  • تحقق مما إذا كان عنوان IP قد تغيّر (عنوان متغيّر)
  • تأكد أن المنفذ 3306 مفتوح في جدارك الناري

رفض الوصول (Access Denied)

  • تأكد من اسم المستخدم وكلمة المرور
  • تأكد أن المستخدم يملك صلاحية الوصول عن بُعد
  • تأكد من صحة اسم قاعدة البيانات

أخطاء انتهاء المهلة

  • تحقق من حجب الشبكة أو الجدار الناري للمنفذ 3306
  • جرّب استخدام نفق SSH بدلًا من ذلك
  • تأكد أن السيرفر يقبل الاتصالات

إلغاء الوصول عن بُعد

عندما لا تعود بحاجة إلى الوصول عن بُعد:

  1. افتح Remote MySQL في EGPNL
  2. ابحث عن سجل عنوان IP أو المضيف
  3. اضغط Delete