เมื่อพบปัญหาดังกล่าวเมื่อเร็วๆ นี้ จะแจ้งได้ที่ 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 ใหม่ แต่ปัญหานี้จะเกิดขึ้นข้ามคืน
รูปแบบ mysql JDBC URL เป็นดังนี้:
jdbc:mysql://[host:port],[host:port].../[database][?Parameter name 1][=Parameter value 1][&Parameter name 2][=Parameter value 2].. .
พารามิเตอร์ที่สำคัญกว่าที่ใช้กันทั่วไปหลายประการ:
ชื่อพารามิเตอร์ คำอธิบายพารามิเตอร์ ค่าเริ่มต้น ข้อกำหนดเวอร์ชันขั้นต่ำ
ชื่อผู้ใช้ฐานข้อมูลผู้ใช้ (ใช้เชื่อมต่อกับฐานข้อมูล) ทุกรุ่น
รหัสผ่าน รหัสผ่านผู้ใช้ (ใช้เชื่อมต่อกับฐานข้อมูล) ทุกรุ่น
useUnicode ไม่ว่าจะใช้ชุดอักขระ Unicode หรือไม่หากตั้งค่าพารามิเตอร์ characterEncoding เป็น gb2312 หรือ gbk ค่าพารามิเตอร์นี้จะต้องตั้งค่าเป็น true false 1.1g
characterEncoding เมื่อ useUnicode ถูกตั้งค่าเป็นจริง ให้ระบุการเข้ารหัสอักขระ ตัวอย่างเช่น สามารถตั้งค่าเป็น gb2312 หรือ gbk false 1.1g
autoReconnect เมื่อการเชื่อมต่อฐานข้อมูลถูกขัดจังหวะอย่างผิดปกติ จะทำการเชื่อมต่อใหม่โดยอัตโนมัติหรือไม่? เท็จ 1.1
autoReconnectForPools ว่าจะใช้กลยุทธ์การเชื่อมต่อใหม่สำหรับพูลการเชื่อมต่อฐานข้อมูลหรือไม่ 3.1.3
failedOverReadOnly หลังจากการเชื่อมต่อใหม่อัตโนมัติสำเร็จ การเชื่อมต่อถูกตั้งค่าเป็นแบบอ่านอย่างเดียวหรือไม่ จริง 3.0.12
เมื่อ maxReconnects autoReconnect ถูกตั้งค่าเป็นจริง จำนวนครั้งของการเชื่อมต่อใหม่คือ 3 1.1
InitialTimeout เมื่อตั้งค่าการเชื่อมต่อใหม่อัตโนมัติเป็น True ช่วงเวลาระหว่างการเชื่อมต่อใหม่สองครั้ง หน่วย: วินาที 2 1.1
ConnectTimeout การหมดเวลาเมื่อสร้างการเชื่อมต่อซ็อกเก็ตกับเซิร์ฟเวอร์ฐานข้อมูล หน่วย: มิลลิวินาที 0 หมายถึงไม่หมดเวลา ใช้ได้กับ JDK 1.4 และสูงกว่า 0 3.0.1
socketTimeout การดำเนินการซ็อกเก็ต (อ่านและเขียน) หมดเวลา หน่วย: มิลลิวินาที 0 หมายถึงไม่เคยหมดเวลา 0 3.0.1
ตามสภาพแวดล้อมของจีน โดยปกติแล้ว URL การเชื่อมต่อ mysql สามารถตั้งค่าเป็น:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&CharacterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
เมื่อใช้พูลการเชื่อมต่อฐานข้อมูล วิธีที่ดีที่สุดคือตั้งค่าพารามิเตอร์สองตัวต่อไปนี้:
เชื่อมต่ออัตโนมัติ=true&failOverReadOnly=false
ควรสังเกตว่าในไฟล์การกำหนดค่า xml จะต้องยกเว้นสัญลักษณ์ & ใน url ลงใน & ตัวอย่างเช่น เมื่อกำหนดค่าพูลการเชื่อมต่อฐานข้อมูลใน server.xml ของ Tomcat ตัวอย่าง mysql jdbc url จะเป็นดังนี้:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&CharacterEncoding=utf8&เชื่อมต่ออัตโนมัติ