计算引擎上的云SQL代理提供tcp6错误

时间:2016-04-09 03:55:12

标签: google-cloud-sql

我刚刚创建了一个新的Compute Engine实例和Cloud SQL(第二代),我试图让Cloud SQL代理工作,这样我就可以从Compute Engine连接到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不支持协议tcp6:listen tcp6 [:: 1]:0:   bind:无法分配请求的地址

     

2016/04/09 03:42:37无法卸载保险丝目录" / cloudsql":   & exec.Error {Name:" fusermount",Err:(* errors.errorS   特林)(0xc820011250)}

     

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

     

2016/04/09 03:42:37无法启动保险丝目录" / cloudsql":   无法挂载" / cloudsql":fusermount:exec:" fusermount":可执行文件   在$ PATH中找不到文件

更新:

在不使用保险丝的情况下工作。这是我跑的命令:

./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,但我想这只是一个警告?

1 个答案:

答案 0 :(得分:1)

是的,tcp6消息是一个警告 - 它只是声明你正在运行的系统不支持ipv6(GCE中的一个已知问题)。我已经删除了那条日志消息,它没有证明非常有用(而且,正如你所示,可能会令人困惑)。

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