دليل المستخدم إلغاء

استكشاف أخطاء اتصالات قاعدة البيانات وحلها

 

 

استكشاف مشاكل الأذونات وإصلاحها، ورسائل خطأ Microsoft ورسائل خطأ MySQL في Dreamweaver.

ملاحظة:

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

استكشاف مشاكل الأذونات وإصلاحها

تعتبر الأذونات غير الكافية للمجلدات أو الملفات من المشاكل الأكثر شيوعًا. فإذا كانت قاعدة البيانات لديك موجودة على كمبيوتر يعمل بنظام التشغيل Windows 2000 أو Windows XP وتلقيت رسالة خطأ عند محاولة عرض صفحة ديناميكية في مستعرض ويب أو طريقة العرض Live، فقد يكون هذا الخطأ نتيجة لمشكلة في الأذونات.

لا تتمتع محاولات حساب Windows للوصول إلى قاعدة البيانات بالأذونات الكافية. قد يكون الحساب حساب Windows مجهول (افتراضيًا، IUSR_computername) أو حساب مستخدم محدد، إذا تم تأمين الصفحة بغرض الوصول المرخص.

يجب تغيير الأذونات لمنح الحساب IUSR_computername الأذونات الصحيحة حتى يتمكن خادم الويب من الوصول إلى ملف قاعدة البيانات. ‏‫علاوة على ذلك، يجب أيضًا أن يكون للمجلد الذي يحتوي على ملف قاعدة البيانات أذونات تم تعيينها للكتابة إلى قاعدة البيانات تلك.

إذا كان الغرض من الوصول إلى الصفحة هو الوصول المجهول، فامنح الحساب IUSR_computername حق التحكم الكامل في المجلد وملف قاعدة البيانات، كما هو موضح في الإجراء أدناه.

إضافة إلى ذلك، إذا كان المسار إلى قاعدة البيانات تتم الإشارة إليه باستخدام UNC ‏(\\Server\Share)، فتأكد من قيام أذونات المشاركة بمنح حق الوصول الكامل لحساب IUSR_computername. وتنطبق هذه الخطوة حتى في حالة وجود المشاركة على خادم الويب المحلي.

إذا قمت بنسخ قاعدة البيانات من موقع آخر، فقد لا ترث الأذونات من مجلد وجهتها، وقد تضطر إلى تغيير الأذونات الخاصة بقاعدة البيانات.

التحقق من أذونات ملف قاعدة البيانات أو تغييرها (نظام التشغيل Windows XP)

  1. تأكد من أن لديك امتيازات المسؤول على الكمبيوتر.
  2. في Windows Explorer، حدد موقع ملف قاعدة البيانات أو المجلد الذي يحتوي على قاعدة البيانات، ثم انقر بزر الماوس الأيمن فوق الملف أو المجلد، وحدد "خصائص".
  3. حدد علامة التبويب "أمان".
    ملاحظة:

    لا تنطبق هذه الخطوة إلا إذا كان لديك نظام ملفات NTFS. أما إذا كان لديك نظام ملفات FAT، فلن يحتوي مربع الحوار على علامة التبويب "أمان".

  4. إذا لم يتم سرد الحساب IUSR_computername في القائمة "مجموعات" أو "أسماء المستخدمين"، فانقر فوق الزر "إضافة" لإضافته.
  5. في مربع الحوار "تحديد المستخدمين" أو "المجموعات"، انقر فوق "خيارات متقدمة".

    يتغير بعدها مربع الحوار ليعرض مزيدًا من الخيارات.

  6. انقر فوق "المواقع" وحدد اسم الكمبيوتر.
  7. انقر فوق "بحث الآن" لعرض قائمة بأسماء الحسابات المقترنة بالكمبيوتر.
  8. حدد حساب IUSR_computername وانقر فوق "موافق"؛ ثم انقر فوق "موافق" مرة أخرى لمسح مربع الحوار.
  9. لتعيين أذونات كاملة لحساب IUSR، حدد "تحكم كامل" ثم انقر فوق "موافق".

التحقق من أذونات ملف قاعدة البيانات أو تغييرها (نظام التشغيل Windows 2000)

  1. تأكد من أن لديك امتيازات المسؤول على الكمبيوتر.
  2. في Windows Explorer، حدد موقع ملف قاعدة البيانات أو المجلد الذي يحتوي على قاعدة البيانات، ثم انقر بزر الماوس الأيمن فوق الملف أو المجلد، وحدد "خصائص".
  3. حدد علامة التبويب "أمان".
    ملاحظة:

    لا تنطبق هذه الخطوة إلا إذا كان لديك نظام ملفات NTFS. أما إذا كان لديك نظام ملفات FAT، فلن يحتوي مربع الحوار على علامة التبويب "أمان".

  4. إذا لم يتم سرد حساب IUSR_computername ضمن حسابات Windows في مربع الحوار "أذونات الملفات"، فانقر فوق الزر "إضافة" لإضافته.
  5. في مربع الحوار "تحديد المستخدمين" أو "أجهزة الكمبيوتر" أو "المجموعات"، حدد اسم الكمبيوتر من القائمة "بحث في" لعرض قائمة بأسماء الحسابات المقترنة بالكمبيوتر.
  6. حدد حساب IUSR_computername وانقر فوق "إضافة".
  7. لتعيين أذونات كاملة لحساب IUSR، حدد "تحكم كامل" من القائمة "نوع الوصول" ثم انقر فوق "موافق".

    لمزيد من الأمان، يمكن تعيين الأذونات حتى يتم تعطيل الإذن "قراءة" مع مجلد الويب الذي يحتوي على قاعدة البيانات. ولن يُسمح باستعراض المجلد، ولكن تظل صفحات الويب قادرة على الوصول إلى قاعدة البيانات.

    لمزيد من المعلومات حول حساب IUSR وأذونات خادم الويب، راجع الملاحظات التقنية التالية على مركز دعم Adobe:

استكشاف مشاكل رسائل خطأ Microsoft وإصلاحها

تحدث رسائل خطأ Microsoft هذه عندما تطلب صفحة ديناميكية من الخادم في حالة استخدام Internet Information Server ‏(IIS) مع نظام قاعدة بيانات Microsoft مثل Access أو SQL Server.

ملاحظة:

لا توفر Adobe الدعم الفني لبرامج الجهات الأخرى، مثل Microsoft Windows وIIS. إذا لم تحل هذه المعلومات مشكلتك، الرجاء الاتصال بمركز الدعم الفني لـ Microsoft أو زيارة موقع دعم Microsoft على الويب على /http://support.microsoft.com/.

لمزيد من المعلومات حول أخطاء 80004005، راجع "INFO: Troubleshooting Guide for 80004005 Errors in Active Server Pages and Microsoft Data Access Components (Q)" (معلومات: دليل حل مشاكل أخطاء 80004005 في صفحات الخادم النشطة ومكونات الوصول لبيانات Microsoft ‏(Q306518)”، في موقع Microsoft على الويب على 306518http://support.microsoft.com/default.aspx?scid=kb;ar-ae;Q306518.

[‏[المرجع]80004005— لم يتم العثور على اسم مصدر البيانات ولم يتم تحديد برنامج تشغيل افتراضي]

يحدث هذا الخطأ عند محاولة عرض صفحة ديناميكية في مستعرض ويب أو في طريقة العرض Live. قد تختلف رسالة الخطأ حسب قاعدة البيانات وخادم الويب لديك. وتتضمن الاختلافات الأخرى لرسالة الخطأ ما يلي:

  • 80004005—Driver's SQLSetConnectAttr failed

  • 80004005—General error unable to open registry key 'DriverId'

    فيما يلي بيان بالأسباب المحتملة والحلول:

  • يتعذر على الصفحة العثور على DSN. تأكد من أنه قد تم إنشاء DSN على كل من خادم الويب والجهاز المحلي.

  • قد يكون قد تم إعداد DSN كـ DSN لمستخدم، وليس كـ DSN لنظام. احذف DSN لمستخدم وقم بإنشاء DSN لنظام واستبدله به.

ملاحظة:

إذا لم تحذف DSN لمستخدم، فقد تتسبب أسماء DSN المكررة في إنشاء خطأ ODBC جديد.

إذا كنت تستخدم Microsoft Access، فقد يكون ملف قاعدة البيانات (‎‏‎‎.mdb) مؤمنًا. وقد يكون سبب التأمين هو وصول DNS باسم مختلف إلى قاعدة البيانات. في Windows Explorer، ابحث عن ملف التأمين (ldb.) في المجلد الذي يحتوي على ملف قاعدة البيانات (mdb.) ثم احذف الملف ldb. وإذا كان هناك DSN آخر يشير إلى نفس ملف قاعدة البيانات، فاحذفه لمنع حدوث الخطأ في المستقبل. ولا تنس إعادة تمهيد الكمبيوتر بعد إجراء أي تغييرات.

[[Reference]80004005—Couldn’t use ‘(unknown)’; file already in use]

يحدث هذا الخطأ عند استخدام قاعدة بيانات Microsoft Access ومحاولة عرض صفحة ديناميكية في مستعرض ويب أو في طريقة العرض Live. صورة أخرى لرسالة الخطأ هي “80004005—Microsoft Jet database engine cannot open the file (‏unknown).”

يكون السبب المحتمل لذلك هو وجود مشكلة في الأذونات. فيما يلي بيان لبعض الأسباب المحددة والحلول:

  • قد لا يكون لدى الحساب قيد الاستخدام بواسطة Internet Information Server (عادةً IUSR) أذونات Windows المناسبة لقاعدة بيانات مستندة إلى ملف أو للمجلد الذي يحتوي على الملف. تحقق من الأذونات المتعلقة بحساب IIS (‏IUSR) في إدارة المستخدمين.

  • قد لا تمتلك أذونات تؤهلك لإنشاء ملفات مؤقتة أو تدميرها. تحقق من الأذونات المتعلقة بالملف والمجلد. تأكد من أن لديك إذنًا يؤهلك لإنشاء أي ملفات مؤقتة أو تدميرها. حيث يتم إنشاء الملفات المؤقتة عادةً في نفس المجلد الموجودة به قاعدة البيانات، ولكن قد يتم إنشاء الملف في مجلدات أخرى مثل Winnt/.

  • في نظام التشغيل Windows 2000، قد يلزم تغيير قيمة مهلة اسم DSN لقاعدة بيانات Access. ولتغيير هذه القيمة، حدد ابدأ ‏>‎‏ إعدادات > لوحة التحكم > أدوات إدارية > مصادر البيانات (ODBC). انقر فوق علامة التبويب "النظام"، ثم قم بتمييز DSN الصحيح، وانقر فوق الزر "تكوين". انقر فوق الزر Options وقم بتغيير القيمة Page Timeout إلى 5000.

    إذا استمرت المشاكل، فراجع مقالات قاعدة معارف Microsoft التالية:

  • PRB: 80004005 “تعذر استخدام ‘(غير معروف)’; الملف مستخدم بالفعل” على http://support.microsoft.com/default.aspx?scid=kb;ar-ae;Q174943.

  • PRB: فشل اتصال قاعدة بيانات Microsoft Access في صفحات الخادم النشطة على http://support.microsoft.com/default.aspx?scid=kb;ar-ae;Q253604.

  • PRB: الخطأ “يتعذر فتح الملف غير المعروف” استخدام الوصول على http://support.microsoft.com/default.aspx?scid=kb;ar-ae;Q166029.

[[Reference]80004005—Logon Failed()]

يحدث هذا الخطأ عند استخدام Microsoft SQL Server ومحاولة عرض صفحة ديناميكية في مستعرض ويب أو في طريقة العرض Live.

يقوم SQL Server بإنشاء هذا الخطأ إذا لم يقبل أو يتعرف على حساب تسجيل الدخول أو كلمة المرور الخاصة به التي تم تقديمها (إذا كنت تستخدم مستوى أمان قياسي)، أو إذا لم يتم تعيين حساب Windows على حساب SQL (إذا كنت تستخدم مستوى أمان متكامل).

فيما يلي بيان بالحلول المحتملة:

  • إذا استخدمت مستوى أمان قياسي، فقد يكون الاسم وكلمة المرور للحساب غير صحيحين. جرّب استخدام حساب مسؤول النظام وكلمة المرور الخاصة به (UID= "sa"‎ ولا توجد كلمة مرور)، التي يجب تعريفها في سطر سلسلة الاتصال. (لا تخزّن أسماء DSN أسماء المستخدمين وكلمات المرور).

  • إذا كنت تستخدم مستوى أمان متكامل، فتحقق من حساب Windows الذي يستدعي الصفحة وابحث عن حساب SQL المعيّن له (إن كان موجودًا).

  • لا يسمح SQL Server بوجود تسطير سفلي في أسماء حساب SQL. وإذا قام أحد الأشخاص بتعيين حساب Windows IUSR_machinename إلى حساب SQL بنفس الاسم، فسوف يفشل. قم بتعيين أي حساب يستخدم تسطير سفلي إلى اسم حساب على SQL لا يستخدم تسطير سفلي.

[‏[المرجع]80004005— يجب أن تستخدم العملية استعلامًا قابلاً للتحديث]

يحدث هذا الخطأ عندما يقوم حدث بتحديث مجموعة سجلات أو بإدراج بيانات في مجموعة سجلات.

فيما يلي بيان بالأسباب المحتملة والحلول:

  • تتميز الأذونات التي تم تعيينها في المجلد الذي يحتوي على قاعدة البيانات بأنها شديدة التقييد. ويجب تعيين امتيازات IUSR على قراءة/كتابة.

  • لا تتمتع الأذونات في ملف قاعدة البيانات بامتيازات كاملة قيد التشغيل للقراءة/الكتابة.

  • قد تكون قاعدة البيانات موجودة خارج الدليل Inetpub/wwwroot. على الرغم من إمكانية عرض البيانات والبحث فيها، قد يتعذر عليك تحديثها ما لم تكون قاعدة البيانات موجودة في الدليل wwwroot.

  • تستند مجموعة السجلات إلى استعلام غير قابل للتحديث. وتعتبر الصلات مثالاً جيدًا على الاستعلامات غير القابلة للتحديث داخل قواعد البيانات. أعد هيكلة الاستعلامات الخاصة بك بحيث تكون قابلة للتحديث.

    لمزيد من المعلومات حول هذا الخطأ، راجع "PRB: ASP ‘Error The Query Is Not Updateable’ When You Update Table Record" (خطأ في ASP 'الاستعلام غير قابل للتحديث' عند تحديث سجل الجداول) في قاعدة معارف Microsoft على http://support.microsoft.com/default.aspx?scid=kb;ar-ae;Q174640.

[‏[المرجع]80040e07— عدم تطابق نوع البيانات في تعبير المعايير]

يحدث هذا الخطأ عندما يحاول الخادم معالجة صفحة تحتوي على سلوك الخادم Insert Record أو Update Record، ويحاول سلوك الخادم تعيين قيمة العمود Date/Time في قاعدة بيانات Microsoft Access إلى سلسلة فارغة ("").

تتميز قاعدة بيانات Microsoft Access بكتابة بيانات قوية؛ فهي تفرض مجموعة متشددة من القواعد على قيم الأعمدة المحددة. ولا يمكن تخزين قيمة السلسلة الفارغة الموجودة في استعلام SQL في العمود Date/Time بقاعدة البيانات Access. وحاليًا، الحل البديل الوحيد المعروف لهذه المشكلة هو تجنب تحديث أعمدة Date/Time في Access باستخدام سلاسل فارغة ("") أو أي قيمة أخرى لا تتطابق مع نطاق القيم المحددة لنوع البيانات أو تجنب إدراج هذه القيم في الأعمدة.

[[Reference]80040e10—Too few parameters]

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

[‏[المرجع]80040e10— حقل COUNT غير صحيح]

يحدث هذا الخطأ عند معاينة صفحة تحتوي على سلوك الخادم Insert Record في مستعرض ويب ومحاولة استخدامها لإدراج سجل في قاعدة بيانات Microsoft Access.

قد تحاول إدراج سجل في حقل قاعدة بيانات يحتوي على علامة استفهام (?) في اسم الحقل. تعتبر علامة الاستفهام حرفًا خاصًا لبعض محركات قواعد البيانات، بما في ذلك Microsoft Access، ويجب عدم استخدامها في أسماء الجداول أو أسماء الحقول.

افتح نظام قاعدة البيانات واحذف علامة الاستفهام (?) من أسماء الحقول، ثم قم بتحديث سلوكيات الخادم في الصفحة التي تشير إلى هذا الحقل.

[‏[المرجع]80040e14—خطأ في بناء الجملة في عبارة INSERT INTO]

يحدث هذا الخطأ عندما يحاول الخادم معالجة صفحة تحتوي على سلوك الخادم Insert Record.

وينتج هذا الخطأ عادةً عن إحدى المشاكل التالية أو أكثر التي قد تواجه حقل أو كائن أو متغير في قاعدة البيانات:

  • استخدام كلمة محجوزة كاسم. تحتوي معظم قواعد البيانات على كلمات محجوزة. على سبيل المثال، تعتبر الكلمة "date" كلمة محجوزة ولا يمكن استخدامها في أسماء الأعمدة بقاعدة البيانات.

  • استخدام أحرف خاصة في الاسم. ومن أمثلة الأحرف الخاصة:

    . / * : ! # & - ?

  • استخدام مسافة في الاسم.

    يمكن أن يحدث الخطأ أيضًا عندما يتم تعريف قناع إدخال لأحد الكائنات في قاعدة البيانات، ولا تتوافق البيانات المدرجة مع القناع.

    لحل المشكلة، تجنب استخدام كلمات محجوزة مثل "date" و"name" و"select" و"where" و"level" عند تحديد أسماء الأعمدة في قاعدة البيانات. واحذف كذلك أي مسافات أو أحرف خاصة.

    راجع صفحات الويب التالية للاطلاع على قوائم بالكلمات المحجوزة لأنظمة قواعد البيانات الشائعة:

  • Microsoft Access على http://support.microsoft.com/default.aspx?scid=kb;ar-ae;Q209187

  • MySQL على http://dev.mysql.com/doc/mysql/en/reserved-words.html

[‏[المرجع]80040e21—خطأ ODBC في الإدراج أو التحديث]

يحدث هذا الخطأ عندما يحاول الخادم معالجة صفحة تحتوي على سلوك الخادم Update Record أو Insert Record. ولا يمكن لقاعدة البيانات معالجة عملية التحديث أو الإدراج التي يحاول سلوك الخادم إجراؤها.

فيما يلي بيان بالأسباب المحتملة والحلول:

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

  • البيانات التي يقوم سلوك الخادم بتحديثها أو إدراجها هي من النوع الخطأ لحقل قاعدة البيانات، مثل إدراج تاريخ في حقل قيم منطقية (نعم/لا) أو إدراج سلسلة في حقل رقمي أو إدراج سلسلة منسقة بشكل غير صحيح في الحقل Date/Time.

[‏[المرجع]800a0bcd—أما BOF أو EOF صحيح]

يحدث هذا الخطأ عند محاولة عرض صفحة ديناميكية في مستعرض ويب أو في طريقة العرض Live.

تحدث هذه المشكلة عندما تحاول صفحة عرض بيانات من مجموعة سجلات فارغة. لحل هذه المشكلة، قم بتطبيق سلوك الخادم Show Region على المحتوى الديناميكي ليتم عرضه في الصفحة، كالتالي:

  1. قم بتمييز المحتوى الديناميكي في الصفحة.

  2. في اللوحة Server Behaviors، انقر فوق زر الإضافة (+) وحدد Show Region > ‏Show Region If Recordset Is Not Empty.

  3. حدد مجموعة السجلات التي توفر المحتوى الديناميكي وانقر فوق OK.

  4. كرر الخطوات من 1 إلى 3 مع كل عنصر من المحتوى الديناميكي في الصفحة.

استكشاف مشاكل رسائل خطأ MySQL وإصلاحها

من رسائل الخطأ الشائعة التي قد تواجهها عند اختبار اتصال قاعدة بيانات PHP بـ MySQL 4.1 الرسالة التالية: "Client does not support authentication protocol requested. Consider upgrading MySQL client".

قد يتعين عليك الرجوع إلى إصدار سابق من MySQL، أو تثبيت PHP 5 ونسخ بعض مكتبات الارتباطات الديناميكية (DLL). للاطلاع على التعليمات التفصيلية، راجع إعداد بيئة تطوير PHP.

احصل على مساعدة بشكل أسرع وأسهل

مستخدم جديد؟