配置自动重连
本文将介绍云数据库 MySQL 实例在切换时出现的闪断问题影响,以及如何配置自动重连。
# 操作背景
云数据库 MySQL 在对 MySQL 实例调整配置或主实例因负载过高 hang 住以及硬件故障等时,可能涉及到实例切换,实例在切换时会出现秒级别的连接闪断。
当主备切换时,应用程序若未配置自动重连功能,将会出现应用连接异常,影响业务正常访问。 建议您在应用程序配置自动重连功能,并且对实例操作尽量在维护时间内进行。
# 配置操作
以 Java 客户端访问为例:
方案一:connection url 中加参数 autoReconnect = true
jdbc.url=jdbc:mysql://ipaddress:6033/database?autoReconnect=true&autoReconnectForPools=true
1方案二:使用 hibernate
<property name="connection.autoReconnect">true</property> <property name="connection.autoReconnectForPools">true</property> <property name="connection.is-connection-validation-required">true</property>
1
2
3方案三:使用 c3p0 连接池
<property name="hibernate.c3p0.acquire_increment">1</property> <property name="hibernate.c3p0.idle_test_period">0</property> <property name="hibernate.c3p0.timeout">0</property> <property name="hibernate.c3p0.validate">true</property>
1
2
3
4方案四:修改 MySQL wait_timeout 参数,wait_timeout 最大为 31536000,您可以在控制台 参数配置 中配置 wait_timeout 参数。修改参数操作,详情参见 参数配置。