DRDS支持多种语言及客户端连接使用(需兼容MySQL协议),比如JAVA语言的MySQL JDBC。在连接使用过程,可能因为多种原因出现异常,下面列举了部分使用过程中的问题。
问题1: User xxx already has more than max_user_connections active connections
原因分析
DRDS当前连接数已经超过了最大连接数限制(单个节点默认是800,一个DRDS实例视规格可能有2至4个节点,因此整个实例大概限制1600至3200个连接数)。
解决方法
- 在天翼云官网首页的顶部菜单栏,选择【产品 > 数据库 > 关系型数据库 > 分布式关系型数据库】,进入分布式关系型数据库产品页面。然后单击【管理控制台】,进入【概览】页面。
- 在左侧导航栏,选择【DRDS > 实例管理】,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,选择出现异常的DRDS实例,单击【管理】,进入实例管理页面。
- 单击【节点管理】,依次选中节点,单击【更多】菜单,从下拉菜单中点击【属性设置】,修改【前端连接数限制】为想要设置的值,建议该值不要过大,建议一般维持默认单个节点800连接数限制。无需重启,在线生效。
问题2:User xxx .Your password is OUT-OF-DATE.Please contact DBA to change it
原因分析
数据库用户xxx的密码到期了,需要修改密码,否则无法联机使用DRDS实例。
解决方法
- 在天翼云官网首页的顶部菜单栏,选择【产品 > 数据库 > 关系型数据库 > 分布式关系型数据库】,进入分布式关系型数据库产品页面。然后单击【管理控制台】,进入【概览】页面。
- 在左侧导航栏,选择【DRDS > 实例管理】,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,选择出现异常的DRDS实例,单击【管理】,进入实例【基本信息】页面。
- 单击【用户管理】,选中使用的用户,单击【更多】菜单,单击【修改密码】,输入新密码及密码策略,单击确定保存。无需重启,在线生效。
问题3:Your ip xxx is against the Black/White List Policy
原因分析
客户端IP xxx 违反IP黑白名单,禁止连接。
解决方法
- 在天翼云官网首页的顶部菜单栏,选择【产品 > 数据库 > 关系型数据库 > 分布式关系型数据库】,进入分布式关系型数据库产品页面。然后单击【管理控制台】,进入【概览】页面。
- 在左侧导航栏,选择【DRDS > 实例管理】,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,选择出现异常的DRDS实例,单击【管理】,进入实例【基本信息】页面。
- 单击“分组管理”,选中默认分组,点击“更多”菜单,点击“IP黑白名单”,将需要连接的机器IP或者网段加入到白名单范围内,并从黑名单中移除这些允许访问的IP。无需重启,在线生效。
- 另外,在天翼云DRDS控制台界面使用时出现DBProxy连接失败,也可能是IP黑白名单导致。
问题4:创建表时,提示"DDL审计未通过"
原因分析
建表语句违反DDL审计规则。
解决方法
- 用户评估该条DDL审计规则是否合理,若不合理,可以关闭该条DDL审计规则。
- 在天翼云官网首页的顶部菜单栏,选择【产品 > 数据库 > 关系型数据库 > 分布式关系型数据库】,进入分布式关系型数据库产品页面。然后单击【管理控制台】,进入【概览】页面。
- 在左侧导航栏,选择【DRDS > 实例管理】,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,选择出现异常的DRDS实例,单击【管理】,进入实例【基本信息】页面。
- 单击“DDL审计”,选中某条规则并关闭。无需重启,在线生效。
问题5:执行SQL时,提示Illegal sql statement
原因分析
SQL语句违反DML审计规则。
解决方法
- 用户评估该条DDL审计规则是否合理,若不合理,可以关闭该条DDL审计规则。
- 在天翼云官网首页的顶部菜单栏,选择【产品 > 数据库 > 关系型数据库 > 分布式关系型数据库】,进入分布式关系型数据库产品页面。然后单击【管理控制台】,进入【概览】页面。
- 在左侧导航栏,选择【DRDS > 实例管理】,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,选择出现异常的DRDS实例,单击【管理】,进入实例【基本信息】页面。
- 单击“分组管理”,选中默认分组,单击“更多”菜单,单击“DML审计”,找到某条审计规则并关闭。无需重启,在线生效。
问题6:执行SQL时,提示No database selected
原因分析
执行SQL语句前未选择库。
解决方法
- 客户端连接DRDS实例执行SQL语句前,先执行 use 库名,比如 use test_db 选中test_db库,即可执行SQL语句。
问题7:连接DRDS,提示Authenticate connection to backend error
原因分析
DRDS连接底层关联的MySQL实例失败。
解决方法
- 通过天翼云MySQL控制台排查MySQL实例的状态是否正常,若MySQL实例异常,建议用户可以提交MySQL故障工单。或者可以尝试通过MySQL控制台重启MySQL实例。
- 通过客户端连接MySQL查看是否能连接,并通过show global status like '%conn%'查询MySQL当前的连接数。如果超过了MySQL最大连接数,可以根据实际需要主动关闭部分空闲连接。
- 确保DRDS实例和MySQL实例在同一个VPC,且MySQL实例的安全组允许DRDS实例访问。
- 尝试调整DRDS到MySQL的连接池,将最大空闲连接数提高。