البرمجة

حلول أخطاء اتصال قاعدة البيانات في PHP

عندما تواجه رسالة خطأ “Access denied for user ”@’localhost’ to database ‘kishan'” في PHP، يكون الأمر مرتبطًا عادة بإعدادات اتصال قاعدة البيانات. لحل هذا الخطأ، يجب عليك اتباع بعض الخطوات للتحقق من صحة المعلومات وتأكيد الوصول الصحيح.

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

php
$servername="localhost"; $username="STARK-PC"; $password="YES"; $dbname="kishan"; $conn=new mysqli($servername, $username, $password, $dbname);

تأكد من أن اسم المستخدم وكلمة المرور صحيحة ولديها الصلاحيات الكافية للوصول إلى قاعدة البيانات. في حالة عدم التأكد، يمكنك إعادة تعيين كلمة المرور أو إعطاء المستخدم الصلاحيات اللازمة.

ثانيًا، تأكد من أن المستخدم الذي تقوم بتسجيل الدخول به لديه صلاحيات الوصول إلى قاعدة البيانات من أي مكان (Any host)، لا فقط ‘localhost’. يمكنك فعل ذلك باستخدام أمر GRANT في MySQL.

sql
GRANT ALL PRIVILEGES ON kishan.* TO 'STARK-PC'@'%' IDENTIFIED BY 'YES'; FLUSH PRIVILEGES;

بعد تنفيذ هذه الخطوات، قد تكون قادرًا على الوصول إلى قاعدة البيانات بنجاح. يجب أن يحل هذا الإجراء المشكلة التي واجهتها مع رسالة “Access denied for user ”@’localhost’ to database ‘kishan'”.

المزيد من المعلومات

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

  1. فحص صلاحيات المستخدم:

    • تأكد من أن المستخدم الذي تقوم بتسجيل الدخول به لديه صلاحيات كافية للوصول إلى قاعدة البيانات. يمكنك فحص ذلك باستخدام أمر GRANT في MySQL.
    sql
    GRANT ALL PRIVILEGES ON kishan.* TO 'STARK-PC'@'localhost' IDENTIFIED BY 'YES'; FLUSH PRIVILEGES;
  2. تفعيل اتصالات المرور البعيدة:

    • تأكد من أن MySQL مكون لديه القدرة على قبول اتصالات من عناوين IP البعيدة. يمكنك تفعيل ذلك بتحرير ملف my.cnf وتعيين قيمة bind-address إلى 0.0.0.0.
  3. تفقد ملف السجلات (logs):

    • قم بفحص ملفات السجل (logs) لقاعدة البيانات MySQL للعثور على أي رسائل خطأ إضافية. يمكن العثور على هذه الملفات عادة في مجلدات مثل /var/log/mysql/ أو /var/lib/mysql/.
  4. تحقق من اسم قاعدة البيانات:

    • تأكد من أن اسم قاعدة البيانات المستخدم في الاتصال (kishan في حالتنا) هو الاسم الصحيح. يجب أن يتطابق هذا الاسم تمامًا مع الاسم الذي تم إنشاء قاعدة البيانات به في MySQL.
  5. فحص جدران الحماية (Firewall):

    • تأكد من أن جدران الحماية على الخادم لا تمانع في اتصالات MySQL. قم بفحص الإعدادات لضمان أن المنفذ المستخدم لاتصال MySQL (عادة 3306) مفتوح.
  6. اختبار الاتصال من خلال PHP:

    • قم بكتابة كود PHP بسيط لاختبار الاتصال بقاعدة البيانات. استخدم دالة mysqli_connect_error() للحصول على أي أخطاء تحدث أثناء الاتصال.
    php
    $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; $conn->close();

باتباع هذه الخطوات وفحص المزيد من المعلومات، يجب أن تكون قادرًا على تحديد وحل مشكلة “Access denied for user ”@’localhost’ to database ‘kishan'” بشكل فعّال.

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

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر