2023年8月3日发(作者:)
MySQL数据库连接属性配置,即URL后⼀些配置参数及其重要性在JDBC中,Connection类的创建⽅式有三种函数(不包括连接池)⼀是:nection(String url),⼆是:nection(String url,String user,String password);三是:nection(String url,Properties info);最简单的jdbc连接配置如下:ClassName==jdbc:mysql://(host=host_or_ip):(port=port)/db?key1=value1&key2=value2&keyN=me=rd=password说明:MySQL 8.0后版本驱动类名称为:""如果⽤于配置JDBC URL的机制是基于XML来配置的,请使⽤XML字符⽂字&;分隔配置参数,因为符号(&)是XML的保留字符。本⽂特别说明后其⼀些列配置属性的及其重要性;以下则为属性及其描述(Properties and Descriptions),由于官⽅提供的属性⽐较多, 在此我们主要列举⼀下常⽤的即可,具体更多可⾃⼰去查看,欢迎⼤家补充更多常⽤的配置属性。连接/认证(Connection/Authentication.)Properties
userpasswordDescriptions⽤于连接数据库⽤于连接数据库和数据库服务器建⽴socket连接时的超时设置,单connectTimeout位:毫秒。 0表⽰永不超时,适⽤于JDK 1.4及更⾼版本⽹络socket操作(读写)超时,单位:毫秒。 0表⽰永不超时 003.0.1版本起
默认值(缺省值)
版本要求所有版本所有版本注意事项⼀般不⽤⼀般不⽤socketTimeout03.0.1版本起
⾼可⽤和集群(High Availability and Clustering. )Properties Descriptions默认值(缺省值)版本要求 注意事项驱动程序是否应尝试重新建⽴过时和/或autoReconnect死掉的连接?如果启⽤,驱动程序将对在旧连接或死连接上发出的属于当前事务的查询引发异常,但将在新事务中对该连接发出的下⼀个查询之前尝试重新false1.1版本起依具体项⽬具体对待该连接发出的下⼀个查询之前尝试重新连接。不建议使⽤此功能,因为当应⽤程序不能正确处理SQLExceptions时,它会产⽣与会话状态和数据⼀致性相关的副作⽤,并且仅当您⽆法将应⽤程序配置为正确处理因死掉和过时的连接⽽导致的SQLExceptions时才使⽤此功能。或者,作为最后⼀个选项,研究将mysql服务器变量“wait_timeout”设置为⾼值,⽽不是默认的8⼩时。autoReconnectForPools使⽤适⽤于连接池的重新连接策略(默认为“false”)false3.1.3版本起依具体项⽬具体对待在使⽤数据库连接池的情failOverReadOnly在autoReconnect模式下进⾏故障转移时,连接是否应设置为“只读”?况下,且true3.0.12版本起autoReconnect=true时最好设置该参数:failOverReadOnly=false如果autoReconnect为true,则尝试重新连接的最⼤次数,默认为“3”。如果启⽤了autoReconnect,则在重新连接initialTimeout尝试之间等待的初始时间(以秒为单位,默认为“2”)。21.1版本起
maxReconnects31.1版本起默认即可安全(Security. )Properties Descriptions默认值(缺省值)版本要求注意事项在5.5.45+、5.6.26+或5.7.6+版本中,如果不使⽤SSL连接就要在urL中设置useSSL=false;否则会抛异常:Establishing SSL connection without server'sidentity verification is not recommended.
According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+false|true(5.5.45+、5.6.26+或5.7.6+)3.0.2版本起requirements SSL connection must be establishedby default if explicit option isn't set.
For compliance with existing applications not usingSSL the verifyServerCertificate property is set to'false'.
You need either to explicitly disable SSL by settinguseSSL=false, or set useSSL=true and providetruststore for server certificate verification.与服务器通信时使⽤ssl(true/false),连接到useSSLMySQL5.5.45+、5.6.26+或5.7.6+时默认为“true”,否则默认为“false”杂(Miscellaneous. )Properties Descriptions默认值(缺省值)版本要求注意事项驱动程序在处理字符串时是否应使useUnicode⽤Unicode字符编码?只应在驱动程序⽆法确定字符集映射时使⽤,或者您试图“强制”驱动程序使⽤MySQL本⾝不⽀持的字符集(例如UTF-8、gb2312或gbk),true /false ,默认为'true'如果'useUnicode'设置为true,那么驱必须设置为true,可能会导致中⽂数据乱码true1.1g版本起问题characterEncoding动程序在处理字符串时应该使⽤什么字符⾃动检测1.1g版本起当useUnicode设置为true时,指定字符编码。⽐如可设置为UTF-8、gb2312或gbk 编码?(默认为'⾃动检测')码。⽐如可设置为UTF-8、gb2312或gbk
当驱动程序遇到完全由零组成的⽇期时间zeroDateTimeBehavior值时(由MySQL⽤来表⽰⽆效⽇期),会发⽣什么?有效值为“exception”、“round”和“converttonull”。exception3.1.4版本起⼀般设置为“converttonull”⽐较好,即转换为null即可,否则会抛异常:Causedby: eption: Value'0000-00-00' can not be representedas amp当数据库时区未映射到Java时区时可能导致Java代码中Date类型插⼊到mysql中datetime类型出现时间不⼀致的问题。例如: 3.0.2版本起上海:serverTimezone=Asia/Shanghai简写:serverTimezone=CTT北京:serverTimezone=UTC+8或者:serverTimezone=GMT+8关于serverTimezone覆盖时区的检测/映射。当服务器的时区未映射到Java时区时使⽤到此结束, 更多常⽤属性欢迎⼤家补充
2023年8月3日发(作者:)
MySQL数据库连接属性配置,即URL后⼀些配置参数及其重要性在JDBC中,Connection类的创建⽅式有三种函数(不包括连接池)⼀是:nection(String url),⼆是:nection(String url,String user,String password);三是:nection(String url,Properties info);最简单的jdbc连接配置如下:ClassName==jdbc:mysql://(host=host_or_ip):(port=port)/db?key1=value1&key2=value2&keyN=me=rd=password说明:MySQL 8.0后版本驱动类名称为:""如果⽤于配置JDBC URL的机制是基于XML来配置的,请使⽤XML字符⽂字&;分隔配置参数,因为符号(&)是XML的保留字符。本⽂特别说明后其⼀些列配置属性的及其重要性;以下则为属性及其描述(Properties and Descriptions),由于官⽅提供的属性⽐较多, 在此我们主要列举⼀下常⽤的即可,具体更多可⾃⼰去查看,欢迎⼤家补充更多常⽤的配置属性。连接/认证(Connection/Authentication.)Properties
userpasswordDescriptions⽤于连接数据库⽤于连接数据库和数据库服务器建⽴socket连接时的超时设置,单connectTimeout位:毫秒。 0表⽰永不超时,适⽤于JDK 1.4及更⾼版本⽹络socket操作(读写)超时,单位:毫秒。 0表⽰永不超时 003.0.1版本起
默认值(缺省值)
版本要求所有版本所有版本注意事项⼀般不⽤⼀般不⽤socketTimeout03.0.1版本起
⾼可⽤和集群(High Availability and Clustering. )Properties Descriptions默认值(缺省值)版本要求 注意事项驱动程序是否应尝试重新建⽴过时和/或autoReconnect死掉的连接?如果启⽤,驱动程序将对在旧连接或死连接上发出的属于当前事务的查询引发异常,但将在新事务中对该连接发出的下⼀个查询之前尝试重新false1.1版本起依具体项⽬具体对待该连接发出的下⼀个查询之前尝试重新连接。不建议使⽤此功能,因为当应⽤程序不能正确处理SQLExceptions时,它会产⽣与会话状态和数据⼀致性相关的副作⽤,并且仅当您⽆法将应⽤程序配置为正确处理因死掉和过时的连接⽽导致的SQLExceptions时才使⽤此功能。或者,作为最后⼀个选项,研究将mysql服务器变量“wait_timeout”设置为⾼值,⽽不是默认的8⼩时。autoReconnectForPools使⽤适⽤于连接池的重新连接策略(默认为“false”)false3.1.3版本起依具体项⽬具体对待在使⽤数据库连接池的情failOverReadOnly在autoReconnect模式下进⾏故障转移时,连接是否应设置为“只读”?况下,且true3.0.12版本起autoReconnect=true时最好设置该参数:failOverReadOnly=false如果autoReconnect为true,则尝试重新连接的最⼤次数,默认为“3”。如果启⽤了autoReconnect,则在重新连接initialTimeout尝试之间等待的初始时间(以秒为单位,默认为“2”)。21.1版本起
maxReconnects31.1版本起默认即可安全(Security. )Properties Descriptions默认值(缺省值)版本要求注意事项在5.5.45+、5.6.26+或5.7.6+版本中,如果不使⽤SSL连接就要在urL中设置useSSL=false;否则会抛异常:Establishing SSL connection without server'sidentity verification is not recommended.
According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+false|true(5.5.45+、5.6.26+或5.7.6+)3.0.2版本起requirements SSL connection must be establishedby default if explicit option isn't set.
For compliance with existing applications not usingSSL the verifyServerCertificate property is set to'false'.
You need either to explicitly disable SSL by settinguseSSL=false, or set useSSL=true and providetruststore for server certificate verification.与服务器通信时使⽤ssl(true/false),连接到useSSLMySQL5.5.45+、5.6.26+或5.7.6+时默认为“true”,否则默认为“false”杂(Miscellaneous. )Properties Descriptions默认值(缺省值)版本要求注意事项驱动程序在处理字符串时是否应使useUnicode⽤Unicode字符编码?只应在驱动程序⽆法确定字符集映射时使⽤,或者您试图“强制”驱动程序使⽤MySQL本⾝不⽀持的字符集(例如UTF-8、gb2312或gbk),true /false ,默认为'true'如果'useUnicode'设置为true,那么驱必须设置为true,可能会导致中⽂数据乱码true1.1g版本起问题characterEncoding动程序在处理字符串时应该使⽤什么字符⾃动检测1.1g版本起当useUnicode设置为true时,指定字符编码。⽐如可设置为UTF-8、gb2312或gbk 编码?(默认为'⾃动检测')码。⽐如可设置为UTF-8、gb2312或gbk
当驱动程序遇到完全由零组成的⽇期时间zeroDateTimeBehavior值时(由MySQL⽤来表⽰⽆效⽇期),会发⽣什么?有效值为“exception”、“round”和“converttonull”。exception3.1.4版本起⼀般设置为“converttonull”⽐较好,即转换为null即可,否则会抛异常:Causedby: eption: Value'0000-00-00' can not be representedas amp当数据库时区未映射到Java时区时可能导致Java代码中Date类型插⼊到mysql中datetime类型出现时间不⼀致的问题。例如: 3.0.2版本起上海:serverTimezone=Asia/Shanghai简写:serverTimezone=CTT北京:serverTimezone=UTC+8或者:serverTimezone=GMT+8关于serverTimezone覆盖时区的检测/映射。当服务器的时区未映射到Java时区时使⽤到此结束, 更多常⽤属性欢迎⼤家补充
发布评论