Cloud SQL Compute Engine 上的代理出现 tcp6 错误

Cloud SQL Proxy on Compute Engine gives tcp6 error

我刚刚创建了一个新的 Compute Engine 实例和 Cloud SQL(第二代),我正在尝试让 Cloud SQL 代理工作,以便我可以连接到 Cloud SQL计算引擎。这是我安装代理的方式:

wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
mv cloud_sql_proxy.linux.amd64 cloud_sql_proxy
chmod +x cloud_sql_proxy
sudo mkdir /cloudsql; sudo chmod 777 /cloudsql

现在,当我尝试 运行 代理服务器时出现错误。以下是我 运行 设置代理的方式:

sudo ./cloud_sql_proxy -dir=/cloudsql -fuse

这是我收到的错误:

2016/04/09 03:42:37 Protocol tcp6 not supported: listen tcp6 [::1]:0: bind: cannot assign requested address

2016/04/09 03:42:37 couldn't unmount fuse directory "/cloudsql": &exec.Error{Name:"fusermount", Err:(*errors.errorS tring)(0xc820011250)}

2016/04/09 03:42:37 Mounting "/cloudsql"...

2016/04/09 03:42:37 Could not start fuse directory at "/cloudsql": cannot mount "/cloudsql": fusermount: exec: "fusermount": executable file not found in $PATH

更新:

无需使用 Fuse 即可正常运行。这是命令我 运行:

./cloud_sql_proxy -dir=/cloudsql --instances=my-project:us-central1:my-sql-instance-name=tcp:3306 &
mysql -u root --port 3306 --host 127.0.0.1 -p

我仍然看到错误 Protocol tcp6 not supported: listen tcp6 [::1]:0: bind: cannot assign requested address,但我想这只是一个警告?

是的,tcp6 消息是一个警告 - 它只是说明您 运行 所在的系统不支持 ipv6(GCE 中的一个已知问题)。我已经删除了该日志消息,事实证明它不是很有用(而且,正如您所展示的,可能会造成混淆)。

在 Proxy 退出之前打印的消息是您关心的消息:它抱怨找不到 'fusermount',这意味着您的系统上没有安装 FUSE 客户端工具。如果您想使用 FUSE,您可以从源代码编译它们,但如果您可以使用“-instances”标志,那么就没有必要走那条路了。