gcloud无法访问云sql

时间:2018-02-15 16:55:04

标签: mysql google-cloud-sql gcloud google-cloud-console

我可以在我的Cloud SQL实例中列出数据库但我无法连接到它。

gcloud beta sql databases list --instance=dbinstance  
NAME                CHARSET  COLLATION  
information_schema  utf8     utf8_general_ci  
main                utf8     utf8_general_ci  
mysql               utf8     utf8_general_ci  
performance_schema  utf8     utf8_general_ci  

它将我的本地计算机添加到授权列表中。我可以通过控制台看到。但它没有连接:

gcloud beta sql connect dbinstance --user=root  
Whitelisting your IP for incoming connection for 5 minutes...  
Connecting to database with SQL user [root].  
Enter password:   
ERROR 2003 (HY000): Can't connect to MySQL server on '{db ip}' (110)

它未配置为使用SSL。

1 个答案:

答案 0 :(得分:2)

一些想法:

一个。用户 root 可能未在数据库实例上授权。

  1. 转到https://console.cloud.google.com/sql/instances/dbinstance/users
  2. 用户 root 是否列在那里?
  3. 如果是,root是否可以从任何IP地址获得授权? (由'%'表示)
  4. B中。如果用户 root 确实已获得“dbinstance'在任何主机上,您的本地网络上都可能存在防火墙问题。

    1. 在您的项目中,通过单击控制台网站顶部导航中的> _ 图标打开Cloud Shell。这使您可以在GCP网络内移动,而不是通过本地网络可能具有的任何防火墙。
    2. 在Cloud Shell中,键入:gcloud beta sql connect dbinstance --user=root
    3. 应该询问您的密码。输入。
    4. 如果 root 的密码不起作用,即使在Cloud Shell中也是如此,请尝试重置密码(dbinstance控制台页面上的“用户”选项卡,root旁边的三个点输入,选择"更改密码。"

      如果 root 的密码 在Cloud Shell环境中运行,则表明您的问题出在本地计算机和数据库实例之间。通常它是防火墙问题。