ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يدير MySQL Community Edition الاتصالات باستخدام مؤشر ترابط واحد لكل اتصال. ونتيجة لذلك، يحصل كل اتصال مستخدم على مؤشر ترابط نظام تشغيل مخصص في عملية mysqld.
هناك مشكلات محتملة مرتبطة بهذا النوع من معالجة الاتصال. على سبيل المثال، يكون استخدام الذاكرة مرتفعا نسبيا إذا كان هناك عدد كبير من اتصالات المستخدم، حتى لو كانت اتصالات خاملة. بالإضافة إلى ذلك، هناك مستوى أعلى من الخلاف الداخلي على الخادم ونفقات تبديل السياق عند العمل مع آلاف اتصالات المستخدم.
تشخيص أخطاء الاتصال الشائعة
كلما كان مثيل Azure Database for MySQL Flexible Server يواجه مشكلات في الاتصال، تذكر أن المشاكل يمكن أن توجد في أي من الطبقات الثلاث المتضمنة: جهاز العميل أو الشبكة أو مثيل Azure Database for MySQL Flexible Server.
ونتيجة لذلك، كلما كنت تشخص أخطاء الاتصال، تأكد من مراعاة التفاصيل الكاملة ل:
- العميل، بما في ذلك:
- التكوين (محلي أو Azure VM وما إلى ذلك أو جهاز DBA).
- نظام التشغيل.
- البرامج والإصدارات.
- سلسلة الاتصال وأي معلمات مضمنة.
- مخطط الشبكة (نفس المنطقة؟ نفس AZ؟ قواعد جدار الحماية؟ التوجيه).
- تجمع الاتصال (المعلمات والتكوين)، إذا كان أحدها قيد الاستخدام.
من المهم أيضا تحديد ما إذا كانت مشكلة اتصال قاعدة البيانات تؤثر على جهاز عميل واحد أو عدة أجهزة عميل. إذا كانت الأخطاء تؤثر على عميل واحد فقط من العديد من العملاء، فمن المحتمل أن تكون المشكلة مع هذا العميل. ومع ذلك، إذا كان جميع العملاء يواجهون نفس الخطأ، فمن المحتمل أن تكون المشكلة على جانب خادم قاعدة البيانات أو مع الشبكات بينهما.
تأكد من مراعاة احتمال التحميل الزائد لحمل العمل أيضا، خاصة إذا فتح أحد التطبيقات طفرة في الاتصالات في فترة زمنية قصيرة. يمكنك استخدام مقاييس مثل "إجمالي الاتصالات" و"الاتصالات النشطة" و"الاتصالات التي تم إجهاضها" للتحقيق في ذلك.
عند إنشاء اتصال من جهاز عميل أو تطبيق، فإن أول استدعاء مهم في mysql هو getaddrinfo، الذي ينفذ ترجمة DNS من نقطة النهاية المقدمة إلى عنوان IP. إذا فشل الحصول على العنوان، يعرض MySQL رسالة خطأ مثل "ERROR 2005 (HY000): مضيف خادم MySQL غير معروف "mysql-example.mysql.database.azure.com" (11)" والرقم في النهاية (11 و110 وما إلى ذلك).
خطأ من جانب العميل 2005 رموز
تظهر ملاحظات مرجعية سريعة لبعض رموز الخطأ من جانب العميل 2005 في الجدول التالي.
رمز الخطأ 2005 | ملاحظات |
---|---|
(11) "EAI_SYSTEM - خطأ في النظام" | يوجد خطأ في دقة DNS من جانب العميل. لا توجد مشكلة في Azure Database for MySQL Flexible Server. استخدم dig/nslookup على العميل لاستكشاف الأخطاء وإصلاحها. |
(110) "ETIMEDOUT - مهلة الاتصال" | كانت هناك مهلة للاتصال بخادم DNS الخاص بالعميل. لا توجد مشكلة في Azure Database for MySQL Flexible Server. استخدم dig/nslookup على العميل لاستكشاف الأخطاء وإصلاحها. |
(0) "الاسم غير معروف" | لم يكن الاسم المحدد قابلا للحل بواسطة DNS. تحقق من الإدخال على العميل. من المحتمل ألا تكون هذه مشكلة في قاعدة بيانات Azure لخادم MySQL المرن. |
المكالمة الثانية في mysql هي مع اتصال مأخذ التوصيل وعند النظر إلى رسالة خطأ مثل "ERROR 2003 (HY000): لا يمكن الاتصال بقاعدة بيانات Azure لخادم MySQL المرن على "mysql-example.mysql.database.azure.com" (111)"، الرقم في النهاية (99، 110، 111، 113، إلخ).
خطأ من جانب العميل 2003 رمز
تظهر ملاحظات مرجعية سريعة لبعض رموز الخطأ من جانب العميل 2003 في الجدول التالي.
رمز الخطأ 2003 | ملاحظات |
---|---|
(99) "EADDRNOTAVAIL - لا يمكن تعيين العنوان المطلوب" | لا يحدث هذا الخطأ بسبب قاعدة بيانات Azure لخادم MySQL المرن، بل هو على جانب العميل. |
(110) "ETIMEDOUT - مهلة الاتصال" | تم توفير مهلة للاتصال بعنوان IP. من المحتمل أن يكون هناك مشكلة في الأمان (قواعد جدار الحماية) أو الشبكات (التوجيه). عادة، هذه ليست مشكلة في قاعدة بيانات Azure لخادم MySQL المرن. استخدم nc/telnet/TCPtraceroute على جهاز العميل لاستكشاف الأخطاء وإصلاحها. |
(111) "ECONNREFUSED - رفض الاتصال" | أثناء وصول الحزم إلى الخادم الهدف، رفض الخادم الاتصال. قد تكون هذه محاولة للاتصال بالخادم الخطأ أو المنفذ الخطأ. قد يتعلق هذا أيضا بالخدمة الهدف (قاعدة بيانات Azure لخادم MySQL المرن) التي يتم إيقافها أو استردادها من تجاوز الفشل أو الانتقال من خلال استرداد الأعطال وعدم قبول الاتصالات بعد. قد تكون هذه المشكلة على جانب العميل أو من جانب الخادم. استخدم nc/telnet/TCPtraceroute على جهاز العميل لاستكشاف الأخطاء وإصلاحها. |
(113) "EHOSTUNREACH - المضيف غير قابل للوصول" | لا يتضمن جدول توجيه جهاز العميل مسارا إلى الشبكة التي يوجد عليها خادم قاعدة البيانات. تحقق من تكوين شبكة جهاز العميل. |
رموز خطأ أخرى
تظهر الملاحظات المرجعية السريعة لبعض رموز الأخطاء الأخرى المتعلقة بالمشكلات التي تحدث بعد تأسيس اتصال الشبكة بخادم قاعدة البيانات بنجاح في الجدول التالي.
رمز الخطأ | ملاحظات |
---|---|
ERROR 2013 "فقدان الاتصال بخادم MySQL" | تم تأسيس الاتصال، لكنه فقد بعد ذلك. يمكن أن يحدث هذا إذا تمت محاولة اتصال مقابل شيء ليس MySQL (مثل استخدام عميل MySQL للاتصال ب SSH على المنفذ 22 على سبيل المثال). يمكن أن يحدث أيضا إذا قام المستخدم الفائق بقتل الجلسة. يمكن أن يحدث ذلك أيضًا إذا انتهت مهلة قاعدة البيانات لجلسة العمل. أو يمكن أن يشير إلى المشكلات في خادم قاعدة البيانات، بعد تأسيس الاتصال. يمكن أن يحدث هذا في أي وقت خلال عمر اتصال العميل. يمكن أن يشير إلى أن قاعدة البيانات لديها مشكلة خطيرة. |
خطأ 1040 (08004): اتصالات كثيرة جدًا | عدد عملاء قاعدة البيانات المتصلة بالفعل عند الحد الأقصى المكون. تحتاج إلى تقييم سبب إنشاء العديد من الاتصالات مقابل قاعدة البيانات. |
ERROR 1045 "تم رفض الوصول للمستخدم" | قدم العميل اسم مستخدم أو كلمة مرور غير صحيحة، لذلك رفضت قاعدة البيانات الوصول. |
خطأ 2006 "خادم MySQL قد اختفى" | على غرار إدخال ERROR 2013 "Lost connection to MySQL server" في الجدول السابق. |
ERROR 1317 "تمت مقاطعة تنفيذ الاستعلام" | خطأ يتلقاه العميل عندما يوقف المستخدم الأساسي الاستعلام، وليس الاتصال. |
تم حظر الخطأ 1129 "المضيف '1.2.3.4' بسبب العديد من أخطاء الاتصال" | إلغاء الحظر باستخدام "mysqladmin flush-hosts" - سيتم حظر جميع العملاء في جهاز واحد إذا حاول عميل واحد من هذا الجهاز عدة مرات استخدام البروتوكول الخطأ للاتصال ب MySQL (telnetting إلى منفذ MySQL هو مثال واحد). كما تظهر رسالة الخطأ، يجب تشغيل FLUSH HOSTS; مستخدم مسؤول قاعدة البيانات لمسح المشكلة. |
إشعار
لمزيد من المعلومات حول أخطاء الاتصال، راجع منشور المدونة الذي يحقق في مشكلات الاتصال مع قاعدة بيانات Azure لخادم MySQL المرن.