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审计规则。
解决方法
- 用户评估该条DML审计规则是否合理,若不合理,可以关闭该条DML审计规则。
- 进入天翼云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的连接池,将最大空闲连接数提高。