希望我做错了什么,我已经阅读了所有文档并搜索了论坛,但似乎无法找到我正在经历的问题的底部。我正在使用OSX btw。
我怀疑这两个问题实际上都是同一个问题。我正在使用此命令在容器内运行代理:
$ cmake --version
cmake version 3.7.2
并且正在使用目录生成关联的套接字。但是,当我尝试连接时,我收到以下错误:
docker run -v [PATH]:/cloudsql \
gcr.io/cloudsql-docker/gce-proxy /cloud_sql_proxy -dir=/cloudsql \
-instances=[INSTANCE_CONNECTION_NAME] -credential_file=/cloudsql/[FILE].json
当我尝试连接时,代理不生成新行,这使我认为它没有收到请求,它只是说ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/cloudsql/node-sql:us-central1:nodedb' (61)
并等待。
知道出了什么问题,或者我如何进一步解决这个问题?
答案 0 :(得分:1)
For"使用代理在同一个pod中通过socket"从GKE连接到云SQL。你能按照https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine的教程来学习吗?我们有一个有效的WordPress示例,它将cloudsql-proxy作为sidecar容器(即在同一个Pod中,但通过TCP)。
我认为你不能通过socket"在同一个pod中做到#34;除非您在一个容器中运行多个进程(您不应该将其作为最佳实践)。如果你做一个sidecar容器,你可以使用TCP,所以你不需要一个unix套接字(而且,我不知道你如何在Pod的容器之间共享文件)。
此外,docker run -v /local.sock:/remote.sock
(我认为)将在/local.sock
本地创建一个文件/目录,并使其在容器内可用/remote.sock
。这可能不起作用,因为docker-engine不知道/local.sock
是一个Unix套接字而且它创建了一个常规文件。