如何查询Google Cloud SQL实例的数据库名称以构建连接字符串
问题核心纠正
你混淆了Connection name和实际要连接的数据库名称两个概念:Connection name是GCP为Cloud SQL实例分配的全局唯一实例标识,完全不是实例内的数据库名,填入连接字符串的DB_NAME位置必然报错。
查询Cloud SQL实例内数据库名称的方法
- 控制台查询(最便捷)
打开对应Cloud SQL实例的详情页,切换到「数据库」标签,该页面下展示的所有条目就是当前实例下存在的数据库。
如果你没有手动创建过业务数据库,系统默认自带的数据库有information_schema、mysql、performance_schema、sys,直接填写你需要连接的目标数据库名到连接字符串的DB_NAME位置即可。 - 命令行查询
如果你的本地机器/应用所在节点已经有权限访问Cloud SQL实例的3306端口,可以先通过MySQL客户端登录实例查询:- 执行登录命令:
mysql -u <你的用户名> -p -h <实例Private IP address> -P 3306 - 输入密码登录成功后,执行命令:
SHOW DATABASES;
返回的结果就是所有可用的数据库名称。
- 执行登录命令:
补充说明
你之前的参数判断是正确的:直连场景下host填Private IP address、端口默认3306,只要你的应用部署在和Cloud SQL实例同一个VPC内、且VPC防火墙规则放通了应用到Cloud SQL 3306端口的入站请求,网络层面就没有问题。Connection name仅在使用Cloud SQL Auth Proxy连接的场景下使用,直连不需要该参数。
内容的提问来源于stack exchange,提问作者Caleb Jay
相关产品推荐
相关产品推荐

