【发布时间】:2023-04-01 07:46:01
【问题描述】:
我使用手册 Connecting using a public IP address 设置了公共 IP 连接。但是,当我尝试使用以下命令从我的计算引擎实例连接到 MySQL 实例时:mysql --host=<MySQL instance IP> -user=<user> --password,我得到mysql Access denied for user.. @ (using password: YES)。
用户\密码是正确的,并且在我的本地客户端工作,但不是来自我的计算引擎实例。
计算引擎实例:Ubuntu 20.04 LTS
mySQL 实例版本:MySQL 5.7
感谢您的帮助。
【问题讨论】:
-
这是 MySQL 权限问题,不是 GCP 问题。您需要
GRANTMySQL 访问来自该 IP 地址的该用户。 mysqltutorial.org/mysql-grant.aspx -
旁注:确保您使用的是 MySQL SSL,否则您的登录名和密码将以明文形式发送。 dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
-
MySQL 实例对所有 IP 开放,用户主机字段设置为 % 且未配置 SSL。正如我之前提到的,我可以在我的本地机器上使用这个用户,但不能从我的计算引擎中使用。
-
MySQL 认为从 localhost 连接的用户与来自外部 IP 的相同用户名具有不同的权限。阅读 MySQL 权限和 GRANT 语句。注意:我强烈建议使用 Google Cloud SQL 代理通过 Internet 连接到您的实例。否则,您应该在允许 Internet 身份验证之前配置 SSL。
-
问题是如果密码中有特殊字符,可以通过bash终端更改
标签: mysql google-cloud-platform google-compute-engine google-cloud-sql