我可以在云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。
一些想法:
a。用户 root 可能未在数据库实例中授权。
- 转到https://console.cloud.google.com/sql/instances/dbinstance/users
- 用户 root 在那里列出?
- 如果是这样,是否可以从任何IP地址授权根?(由"%"代表(
b。如果确实从任何主机上授权了用户 root ,则在您的本地网络上可能存在防火墙问题。
- 在您的项目中,通过单击看起来像> _ 的图标,打开云外壳,在控制台站点的顶部导航中。这使您可以在GCP网络中移动,而不是通过本地网络可能存在的任何防火墙。
- 在云外壳中,类型:
gcloud beta sql connect dbinstance --user=root
- 它应该要求您的密码。输入。
如果 root 的密码不起作用,即使在云外壳中,请尝试重置密码(您的dbinstance控制台上的用户选项卡, root
的条目旁边的三个点,选择",请选择"更改密码。"
如果 root 的密码在云外壳环境中工作,您已经确定该问题位于本地计算机和DB实例之间。通常这是防火墙问题。