【发布时间】:2019-10-01 19:34:29
【问题描述】:
我正在尝试通过其私有 IP 从我的 Google Cloud Compute VM 连接到我的 Google Cloud MySQL 实例。两者都在同一个 VPC 中,并且似乎实际到达了 MySQL 实例,但拒绝访问并出现错误:
错误 1045 (28000): 用户 'user'@'ip-address' 的访问被拒绝(使用密码:YES)
我 100% 确定我使用了正确的用户名和密码。如果我尝试从同一个 VM 连接到同一个 MySQL 服务器,并通过公共 IP 使用相同的凭据(使用 SSL),它就可以正常工作。
我尝试连接的用户的主机也设置为通配符(所以它是'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 documentation 仅建议检查您的凭据,我确实验证了这一点,所以我希望这里的任何人都可以提供答案。
【问题讨论】:
-
您可能需要
GRANT通过该 IP 访问(或通过通配符允许所有 IP)。能够通过一个 IP 进行连接并不意味着您可以通过另一个 IP 进行连接。 -
@ceejayoz 抱歉,我应该指定已将其设置为通配符 (%)。我会补充的。
-
谢谢,我会根据这些信息重新打开。
-
编辑您的问题并显示该用户的授权。
-
您的虚拟机和 Cloud SQL 是否在同一个 VPC 中?
标签: mysql google-cloud-platform google-cloud-sql