我创建了一个在 GCP MySQL 数据库中插入一些数据的 Spring Boot 应用程序。当我尝试从 getAll() 获取数据时,它显示了我的表中的所有数据,但在 GCP Mysql 中,我看不到任何表。附图片。
2 回答
正如@Chris32 还指出的那样,Google Cloud Web 控制台不会为您提供有关表的任何信息,或者一般来说,不会为您提供 Cloud SQL 实例数据库包含的架构内容。
在您的屏幕截图中,Cloud SQL 仅向您显示与 Cloud SQL 实例关联的不同数据库。
如果您想查看与这些数据库中定义的特定架构关联的表,首先,您需要将访问数据库的 IP 列入白名单。
执行此步骤后,您可以使用数据库产品的适当客户端连接到数据库:在您的情况下,我推荐MySQL Workbench 。
正如@guillaumeblaquiere 在他的回答中指出的那样,请注意,即使仅从您的 IP 地址打开数据库到 Internet,也始终存在潜在的安全风险。
为了降低这种风险,如果您想从上述 MySQL Workbench 等工具提供的丰富 UI 方法中受益,例如,您可以仅在必要时将您的 IP 列入白名单,并在您不需要连接到来自这个工具的数据库。
或者,按照类似的方法,您可以创建一个堡垒主机。基本上,您可以配置一台仅在必要时启动的 GCE 机器。然后,您可以在机器中安装该工具并在需要时连接到它(在 Windows 机器的情况下可能更简单),尽管通常您将配置从您的机器到 Cloud SQL 实例的 SSH 隧道。机代替。
IMO,正确的答案是@Chris32 的评论和@Jccampanero 的答案的混合。
就个人而言,我不建议允许列出您的 IP。它不安全。您可以通过以下两种方式访问数据库
- 使用Cloud SQL 代理打开通往 Cloud SQL 数据库的隧道。然后,使用您的数据库资源管理器(jccampanero 建议的 MySQL 工作台,它是免费的。我个人更喜欢 datagrip)。您通常可以通过隧道访问 Cloud SQL 数据库(如果您按照文档操作并且计算机上未使用端口 3306):
localhost:3306
- 在 Cloud Shell 或您的计算机上使用 bash 终端,并已安装 mysql 客户端。然后运行命令
gcloud sql connect
连接数据库;mysql客户端由这个命令自动运行。登录到数据库后,您可以执行 ause <database>;
和 ashow tables;
来探索它。
请注意,在这两种情况下,您都需要公共 IP。如果没有,你可以看看我写的文章