Saat menghadapi masalah seperti itu baru-baru ini, masalah tersebut akan dilaporkan di com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1905)
di com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2351)
di com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2862)
di com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
di com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
di com.mysql.jdbc.Connection.execSQL(Connection.java:2988)
di com.mysql.jdbc.Connection.execSQL(Connection.java:2917)
di com.mysql.jdbc.Statement.executeQuery(Statement.java:824)
di com.zycy.db.DbTrans.executeQuery(DbTrans.java:127)
Kesalahan seperti itu akan teratasi setelah memulai ulang layanan Tomcat, tetapi masalah ini akan terjadi dalam semalam.
Format URL mysql JDBC adalah sebagai berikut:
jdbc:mysql://[host:port],[host:port].../[database][?Nama parameter 1][=Nilai parameter 1][&Nama parameter 2][=Nilai parameter 2].. .
Beberapa parameter lebih penting yang umum digunakan:
Nama parameter Deskripsi parameter Nilai default Persyaratan versi minimum
nama pengguna database pengguna (digunakan untuk terhubung ke database) semua versi
password Kata sandi pengguna (digunakan untuk terhubung ke database) Semua versi
useUnicode Apakah akan menggunakan kumpulan karakter Unicode, jika parameter characterEncoding disetel ke gb2312 atau gbk, nilai parameter ini harus disetel ke true false 1.1g
characterEncoding Ketika useUnicode disetel ke true, menentukan pengkodean karakter. Misal bisa diset ke gb2312 atau gbk false 1.1g
autoReconnect Ketika koneksi database terputus secara tidak normal, apakah secara otomatis tersambung kembali? salah 1.1
autoReconnectForPools Apakah akan menggunakan strategi koneksi ulang untuk kumpulan koneksi database salah 3.1.3
failOverReadOnly Setelah koneksi ulang otomatis berhasil, apakah koneksi disetel ke read-only? benar 3.0.12
Ketika maxReconnects autoReconnect diatur ke true, jumlah percobaan ulang koneksi adalah 3 1.1
initialTimeout Ketika autoReconnect diatur ke true, interval waktu antara dua koneksi ulang, satuan: detik 2 1.1
connectTimeout Batas waktu saat membuat koneksi soket dengan server database, satuan: milidetik. 0 berarti tidak pernah habis waktu, berlaku untuk JDK 1.4 dan di atasnya 0 3.0.1
socketTimeout operasi soket (baca dan tulis) batas waktu, satuan: milidetik. 0 berarti tidak pernah habis waktu 0 3.0.1
Sesuai dengan lingkungan Cina, biasanya URL koneksi mysql dapat diatur ke:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
Saat menggunakan kumpulan koneksi database, yang terbaik adalah mengatur dua parameter berikut:
autoReconnect=benar&failOverReadOnly=salah
Perlu dicatat bahwa dalam file konfigurasi xml, simbol & di url harus di-escape ke &. Misalnya, saat mengonfigurasi kumpulan koneksi database di server.xml Tomcat, contoh url jdbc mysql adalah sebagai berikut:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect