本文介绍使用数据库代理的常见问题。

目录

5.7版本实例已经升级小版本了,为什么还是只有读写分离,没有独享代理功能?

升级后您需要关闭原有的读写分离,才能看到独享代理的开启页面。

想实现读写分离,是使用独享代理地址还是读写分离地址?

独享代理地址和读写分离地址相同,后端是基于独享代理地址实现读写分离。

使用独享代理地址连接时报超时错误怎么办?

建议您将wait_timeout参数调大后再次尝试连接。

开通独享代理后,实例原来的地址和只读实例的地址是否会被收回?

不会收回。

多个代理会有多个代理地址吗?

代理数量和代理地址数量没有关系,即使1个代理,也可以申请多个代理地址

独享代理是什么架构?有故障切换机制吗?

独享代理也是高可用架构,拥有2个节点,并且出现故障时会自动切换到备节点。

数据库独享代理对用户的连接数有限制吗?

独享代理本身并没有最大连接数的限制,连接数的限制还是由后端数据库中计算节点的规格决定。

主实例写的频率不高,能不能让读请求也发送给主实例?

设置读权重分配时,为主实例也设置权重即可。

读写分离支持hint语句吗?

您可以通过hint语句强制转发请求到主实例上执行。关于RDS读写分离支持的hint格式,请参见文档系统权重分配规则中的通过hint指定SQL发往主实例或只读实例部分。

只读实例不可用时,新连接会连接到正常的只读实例上,那已连接到故障只读实例的连接会自动切换到正常只读实例上吗?

不会自动切换,需要等待超时后重新连接到正常只读实例上。

为什么修改后的权重没有生效 ?

修改权重后,新建的连接才会根据新权重进行分配,已存在的连接不会断开重连。

为什么各节点的负载不符合配置的读权重?

若各节点的负载与配置的读权重不同,主要检查如下两个方面:

  • 请求语句是否包含了事务。包含了事务的所有请求只会路由到主实例,开启事务拆分可以降低主实例负载。
  • 是否只用了读写分离地址(独享代理地址)连接数据库。如果使用了主实例地址或者只读实例地址,这些地址收到的请求不会按权重分配。

读写分离地址可以修改吗?

读写分离地址(独享代理地址)可以修改,具体操作,请参见设置独享代理连接地址

为什么查询时会出现乱码?

通过如下命令检查主实例和只读实例使用的字符集是否一致。
select 
@@global.character_set_results, 
@@global.character_set_client, 
@@global.character_set_connection, 
@@global.character_set_server;

如果不一致可能会出现乱码,您可以修改主实例或只读实例的字符集,确保两个实例使用的字符集一致。如何修改实例字符集,请参见RDS MySQL字符集相关说明