متى تحتاج إلى الوصول عن بُعد
الوصول عن بُعد يتيح لك الاتصال بقاعدة بيانات MySQL من:
- بيئة تطوير محلية (XAMPP أو MAMP أو Docker)
- أدوات قواعد البيانات على سطح المكتب (MySQL Workbench أو DBeaver أو Sequel Pro)
- سيرفرات أخرى أو تطبيقات سحابية
- سكربتات آلية وأدوات نسخ احتياطي
ملاحظة أمنية: فتح MySQL للوصول عن بُعد يفتح بابًا لخطر أمني محتمل. فعّله عند الحاجة فقط، واستخدم دائمًا كلمات مرور قوية.
تفعيل الوصول عن بُعد
الخطوة 1: أضف المضيف البعيد
- سجّل الدخول إلى EGPNL
- افتح Databases → Remote MySQL
- اكتب عنوان IP أو اسم المضيف الخاص بك
- اضغط Add Host
اعرف عنوان IP الخاص بك: افتح whatismyipaddress.com لمعرفة عنوان IP العام الحالي.
الخطوة 2: اضبط مستخدم قاعدة البيانات
تأكد أن مستخدم قاعدة البيانات يملك الصلاحيات المناسبة:
- افتح MySQL Databases
- تأكد أن المستخدم يملك All Privileges
- أو أنشئ مستخدمًا مخصّصًا للاتصال عن بُعد
إعدادات الاتصال
| الإعداد | القيمة |
|---|---|
| اسم المضيف | عنوان IP لسيرفرك أو yourdomain.com |
| المنفذ | 3306 (منفذ MySQL الافتراضي) |
| قاعدة البيانات | your_database_name |
| اسم المستخدم | your_database_user |
| كلمة المرور | your_database_password |
الاتصال عبر MySQL Workbench
- افتح MySQL Workbench
- اضغط + لإضافة اتصال جديد
- اكتب اسمًا للاتصال
- اضبط Hostname على عنوان سيرفرك
- اضبط Port على 3306
- اكتب اسم المستخدم
- اضغط Store in Vault لحفظ كلمة المرور
- اضغط Test Connection
- اضغط 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:
- افتح Remote MySQL في EGPNL
- اكتب
%في خانة المضيف - اضغط 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
- أنشئ اتصالًا جديدًا
- اضبط طريقة الاتصال على Standard TCP/IP over SSH
- اسم مضيف SSH: your-server.com
- اسم مستخدم SSH: المستخدم الخاص بك
- ملف مفتاح SSH: مفتاحك الخاص (اختياري)
- اسم مضيف MySQL: localhost (أو 127.0.0.1)
- اكتب بيانات دخول قاعدة البيانات
لماذا نفق SSH؟ أنفاق SSH تشفّر كل حركة البيانات، ولا تحتاج إلى فتح منفذ MySQL رقم 3306 على الإنترنت.
حل المشكلات
رفض الاتصال (Connection Refused)
- تأكد من إضافة عنوان IP إلى Remote MySQL
- تحقق مما إذا كان عنوان IP قد تغيّر (عنوان متغيّر)
- تأكد أن المنفذ 3306 مفتوح في جدارك الناري
رفض الوصول (Access Denied)
- تأكد من اسم المستخدم وكلمة المرور
- تأكد أن المستخدم يملك صلاحية الوصول عن بُعد
- تأكد من صحة اسم قاعدة البيانات
أخطاء انتهاء المهلة
- تحقق من حجب الشبكة أو الجدار الناري للمنفذ 3306
- جرّب استخدام نفق SSH بدلًا من ذلك
- تأكد أن السيرفر يقبل الاتصالات
إلغاء الوصول عن بُعد
عندما لا تعود بحاجة إلى الوصول عن بُعد:
- افتح Remote MySQL في EGPNL
- ابحث عن سجل عنوان IP أو المضيف
- اضغط Delete
هل كان هذا المقال مفيدًا؟