AWS RDS 未向主账户分配 SUPER 权限

AWS RDS 未向主账户分配 SUPER 权限

我的网络应用程序出现连接数过多错误:http://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html

因此,我想连接到数据库以便show full processes/g调试代码。我使用以下 CLI 命令:

mysql -h domain.eu-west-1.rds.amazonaws.com -P 3306 -u username -p

我使用的用户名是我启动实例时创建的主用户名。据我了解,mysql 始终保持一个连接可用,以允许具有 SUPER 权限的帐户进行连接,但是当我这样做时,我收到了太多错误响应。

查看配置,主用户名似乎只对数据库有超级权限,而对域没有超级权限,这是正确的吗?我还能如何登录 mysql 来调试服务器?

答案1

没错,RDS 不允许任何帐户拥有该SUPER权限。这是 RDS 中一个不幸的限制。

不过,您的问题听起来好像可以通过增加实例的 RDS 参数组来“修复”(或至少解决)max_connect_errors,这将导致 RDS 对来自您的 IP 的连接错误更具容忍度。

您的问题让我怀疑您是否有太多连接......或者太多错误。

如果出现错误,那么您可以尝试从不同的 IP 访问它,您可以使用清除计数器FLUSH HOSTS;

在参数组中设置log_warnings= 2 将增加连接错误的日志记录量(错误日志可通过控制台获取),并且这可能帮助您查明导致主机错误计数累积的原因。

参数组更改将在可能的情况下“热”应用于服务器,但参数组旁边的“实例详细信息”屏幕将提示您应用更改是否正在等待、需要重新启动还是已完成(同步)。

如果问题只是“连接太多”,那么唯一的解决方案——如果您不能强制应用程序丢弃一些连接——就是重新启动实例并获取连接槽,并保持连接,以便您在问题再次出现时可以访问。

相关内容