최근 이러한 문제가 발생하면 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://[호스트:포트],[호스트:포트].../[데이터베이스][?매개변수 이름 1][=매개변수 값 1][&매개변수 이름 2][=매개변수 값 2].. .
일반적으로 사용되는 몇 가지 중요한 매개변수:
매개변수 이름 매개변수 설명 기본값 최소 버전 요구 사항
사용자 데이터베이스 사용자 이름(데이터베이스에 연결하는 데 사용됨) 모든 버전
비밀번호 사용자 비밀번호(데이터베이스 연결에 사용) 모든 버전
useUnicode 유니코드 문자 세트를 사용할지 여부, charEncoding 매개변수가 gb2312 또는 gbk로 설정된 경우 이 매개변수 값은 true false로 설정되어야 합니다. 1.1g
CharacterEncoding useUnicode가 true로 설정된 경우 문자 인코딩을 지정합니다. 예를 들어 gb2312 또는 gbk false 1.1g로 설정할 수 있습니다.
autoReconnect 데이터베이스 연결이 비정상적으로 중단되면 자동으로 다시 연결되나요? 거짓 1.1
autoReconnectForPools 데이터베이스 연결 풀에 대한 재연결 전략 사용 여부 false 3.1.3
failureOverReadOnly 자동 재연결이 성공한 후 연결이 읽기 전용으로 설정됩니까? 참 3.0.12
maxReconnects autoReconnect가 true로 설정된 경우 연결 재시도 횟수는 3 1.1입니다.
initialTimeout autoReconnect가 true로 설정된 경우 두 번의 재연결 사이의 시간 간격, 단위: 초 2 1.1
connectTimeout 데이터베이스 서버와 소켓 연결을 설정할 때의 제한 시간, 단위: 밀리초. 0은 JDK 1.4 이상 0 3.0.1에 적용되는 시간 초과가 없음을 의미합니다.
SocketTimeout 소켓 작업(읽기 및 쓰기) 시간 제한, 단위: 밀리초. 0은 시간 초과가 발생하지 않음을 의미합니다. 0 3.0.1
중국 환경에 따라 일반적으로 mysql 연결 URL은 다음과 같이 설정할 수 있습니다.
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false
데이터베이스 연결 풀을 사용할 때 다음 두 매개변수를 설정하는 것이 가장 좋습니다.
autoReconnect=true&failOverReadOnly=false
xml 구성 파일에서 URL의 & 기호는 &로 이스케이프되어야 합니다. 예를 들어 Tomcat의 server.xml에서 데이터베이스 연결 풀을 구성할 때 mysql jdbc url 샘플은 다음과 같습니다.
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect