为什么当我尝试连接到 Aurora MySQL 兼容版本数据库集群时遇到“访问拒绝”错误?

2 分钟阅读
0

我想要连接到我的 Amazon Aurora MySQL 兼容版本数据库集群,但收到“访问拒绝”错误。

简短描述

要连接到 Aurora MySQL 兼容版本数据库集群,请使用以下选项之一:

当您输入错误的用户名或密码时,通常会出现“访问拒绝”错误。有关更多信息,请参阅 MySQL 网站上的访问拒绝

解决方法

检查 Aurora 数据库实例是否接受连接

确认您的数据库实例处于可用状态。有关更多信息,请参阅查看 Amazon RDS 数据库实例状态查看 Aurora 集群中的数据库实例状态。另请参阅如何解决连接 Amazon RDS 数据库实例时遇到的问题?

排查使用数据库凭证的连接的问题

密码不正确

确保在连接到数据库时输入正确的密码。请勿在密码中使用特殊字符。有关更多信息,请参阅如何重置 Amazon RDS 数据库实例的管理员用户密码?

用户名不正确

确保在连接到数据库时输入正确的用户名。

要检查用户是否存在,请运行下面的查询:

mysql> SELECT user FROM mysql.user WHERE User='username';

如果用户不存在,则运行以下查询来创建新用户:

mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'new-password-here';
mysql> FLUSH        PRIVILEGES;

有关更多信息,请参阅主用户账户权限

用户存在,但客户端主机没有权限连接

要检查 MySQL 允许从哪个主机用户或主机连接,请运行下面的查询:

mysql> SELECT host, user FROM mysql.user WHERE User='username';

要使用正确的主机客户端 IP 地址或通配符 (%) 创建用户以匹配任何 IP 地址,请运行以下查询:

mysql> CREATE USER 'dbuser'@'%' IDENTIFIED BY 'new-password-here';

需要 SSL,但客户端未使用 SSL

要检查用户是否强制执行 SSL,请在您的数据库实例上运行以下查询:

mysql> SELECT * FROM mysql.user WHERE ssl_type <> '';

如果强制使用了 SSL,则必须使用 SSL 进行连接。有关详细信息,请参阅使用 SSL/TLS 加密与数据库集群的连接

重复的用户

要检查是否存在用户名相同的用户,请运行下面的查询:

mysql> SELECT host, user FROM mysql.user WHERE User='username';

要解决重复用户的问题,请使用有权删除其他用户的用户登录。删除第二个用户后,第一个用户可以连接。

有关更多信息,请参阅如何为运行 MySQL 的 Amazon RDS 数据库实例创建其他主用户?

Bash 转换密码中的特殊字符

将密码用单引号括起来,这样 Bash 就无法转换密码中的特殊字符。

连接数据包不包含正确的信息

连接数据包需要超过 connect_timeout 秒才能获得连接数据包。有关更多信息,请参阅 MySQL 网站上的 connect_timeout。可以调整此数据库参数的值来更好地适应您的查询和工作负载。

max_allowed_packet 变量值太小,或者查询需要的内存超过了您为数据库实例分配的内存

默认情况下,max_allowed_packet 值为 64 MB。有关更多信息,请参阅 MySQL 网站上的 max_allowed_packet

如果使用较大 BLOB 列或长字符串,则增加 max_allowed_packet 的值。有关更多信息,请参阅为 Amazon RDS for MySQL 配置参数的最佳实践,第 3 部分: 与安全性、操作可管理性和连接超时相关的参数

对使用 IAM 身份验证的连接问题进行故障排除

要进行连接,请参阅如何允许用户使用其 IAM 凭证向 Amazon RDS for MySQL 数据库实例进行身份验证?

如果无法连接,请参阅当我尝试使用 IAM 身份验证连接到 Amazon RDS for MySQL 时,为什么会出现“访问被拒绝”错误?

对使用 Amazon RDS 代理的连接问题进行故障排除

要连接到您的数据库集群,请参阅我如何使用 Amazon RDS 代理连接到我的 Amazon RDS for MySQL 数据库实例或 Aurora MySQL 兼容的数据库集群?

如果无法连接到您的数据库集群,请参阅为什么我无法使用 RDS 代理连接到我的 Amazon RDS 数据库或 Amazon Aurora 数据库实例?

相关信息

连接到 Amazon Aurora MySQL 数据库集群

适用于 MariaDB、MySQL 和 PostgreSQL 的 IAM 数据库身份验证

Amazon RDS 的参数组

如何对使用 VPC 公有子网或私有子网连接 Amazon RDS 数据库实例时遇到的问题进行故障排除?

AWS 官方
AWS 官方已更新 6 个月前