Google Cloud MySQL 通过私有 IP 被拒绝,但允许通过公共 IP 访问



我正在尝试通过其私有IP从我的Google Cloud Compute VM连接到我的Google Cloud MySQL实例。两者都在同一个 VPC 中,并且看起来实际上已访问 MySQL 实例,但拒绝访问并显示错误:

错误 1045 (28000(:用户"用户"@"IP 地址"的访问被拒绝(使用密码:是(

我 100% 确定我使用的是正确的用户名和密码。如果我尝试通过公共 IP(使用 SSL(使用相同的凭据从同一 VM 连接到同一 MySQL 服务器,它工作正常。

我尝试连接的用户也将其主机设置为通配符(因此'user'@'%'(。它对我想使用的数据库具有所有权限(尽管在指示要使用的表之前拒绝访问,所以我不确定这是否相关(。SHOW GRANTS for user;的输出为:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'user'@'%' WITH GRANT OPTION
GRANT ALL PRIVILEGES ON `database`.* TO 'user'@'%'

Google文档仅建议检查您的凭据,我确实验证了凭据,因此我希望这里的任何人都可以提供答案。

似乎强制执行 TLS 也会影响专用 IP 连接。对我来说,这在文档中并不清楚,我收到的错误也没有提供太多见解。因此,我尝试使用没有客户端密钥/证书的私有 IP 进行连接,而我确实将它们用于公共 IP。

我通过使用相同的客户端证书通过私有 IP 进行连接解决了这个问题。

需要注意的另一件事是,禁用 TLS 强制并不能解决问题。在我的设置中,似乎禁用TLS不是一种选择,即使界面说它已禁用。我不确定为什么会这样。

相关内容

  • 没有找到相关文章

最新更新