عند مواجهة مثل هذه المشكلة مؤخرًا، سيتم الإبلاغ عنها على com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905)
على com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351)
على com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862)
في com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
في com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
في com.mysql.jdbc.Connection.execSQL(Connection.java:2988)
في com.mysql.jdbc.Connection.execSQL(Connection.java:2917)
في com.mysql.jdbc.Statement.executeQuery(Statement.java:824)
في com.zycy.db.DbTrans.executeQuery(DbTrans.java:127)
سيتم حل هذا الخطأ بعد إعادة تشغيل خدمة Tomcat، ولكن هذه المشكلة ستحدث بين عشية وضحاها.
تنسيق URL الخاص بـ mysql JDBC هو كما يلي:
jdbc:mysql://[host:port],[host:port].../[database][?اسم المعلمة 1][=قيمة المعلمة 1][&اسم المعلمة 2][=قيمة المعلمة 2].. .
عدة معلمات أكثر أهمية شائعة الاستخدام:
اسم المعلمة وصف المعلمة القيمة الافتراضية الحد الأدنى لمتطلبات الإصدار
اسم مستخدم قاعدة بيانات المستخدم (المستخدم للاتصال بقاعدة البيانات) جميع الإصدارات
كلمة المرور كلمة مرور المستخدم (تستخدم للاتصال بقاعدة البيانات) جميع الإصدارات
useUnicode ما إذا كنت تريد استخدام مجموعة أحرف Unicode، إذا تم تعيين تشفير المعلمة على gb2312 أو gbk، فيجب تعيين قيمة المعلمة هذه على true false 1.1g
CharacterEncoding عندما يتم ضبط useUnicode على القيمة true، فإنه يحدد ترميز الأحرف. على سبيل المثال، يمكن ضبطه على gb2312 أو gbk false 1.1g
إعادة الاتصال التلقائي عند انقطاع اتصال قاعدة البيانات بشكل غير طبيعي، هل يتم إعادة الاتصال تلقائيًا؟ كاذبة 1.1
autoReconnectForPools ما إذا كان سيتم استخدام إستراتيجية إعادة الاتصال لتجمع اتصال قاعدة البيانات خطأ 3.1.3
FailOverReadOnly بعد نجاح إعادة الاتصال التلقائي، هل تم تعيين الاتصال للقراءة فقط؟ صحيح 3.0.12
عند تعيين maxReconnects autoReconnect على true، يكون عدد مرات إعادة محاولة الاتصال هو 3 1.1
originalTimeout عند ضبط إعادة الاتصال التلقائي على القيمة true، فإن الفاصل الزمني بين عمليتي إعادة الاتصال، الوحدة: ثانية 2 1.1
ConnectTimeout المهلة عند إنشاء اتصال مأخذ توصيل مع خادم قاعدة البيانات، الوحدة: ميلي ثانية. 0 يعني عدم انتهاء المهلة أبدًا، وينطبق على JDK 1.4 وما فوق 0 3.0.1
مهلة تشغيل المقبس (القراءة والكتابة) ، الوحدة: ميلي ثانية. 0 يعني عدم انتهاء المهلة أبدًا 0 3.0.1
وفقًا للبيئة الصينية، عادةً ما يمكن تعيين عنوان URL لاتصال mysql على:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
عند استخدام تجمع اتصال قاعدة البيانات، فمن الأفضل تعيين المعلمتين التاليتين:
autoReconnect=true&failOverReadOnly=false
تجدر الإشارة إلى أنه في ملف تكوين xml، يجب تخطي الرمز & الموجود في عنوان url إلى &. على سبيل المثال، عند تكوين تجمع اتصال قاعدة البيانات في ملف tomcat's server.xml، يكون نموذج عنوان URL الخاص بـ mysql jdbc كما يلي:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect