我刚刚创建了一个新的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
,但我想这只是一个警告?
答案 0 :(得分:1)
是的,tcp6消息是一个警告 - 它只是声明你正在运行的系统不支持ipv6(GCE中的一个已知问题)。我已经删除了那条日志消息,它没有证明非常有用(而且,正如你所示,可能会令人困惑)。
在代理退出之前打印的消息是您关心的消息:它抱怨它无法找到'fusermount',这意味着您的系统上未安装FUSE客户端工具。如果你想使用FUSE,你可以从源代码编译它们,但是如果你使用'-instances'标志就可以了,那么就没有必要走这条路了。