【发布时间】:2020-08-01 15:55:30
【问题描述】:
我是谷歌云的新手,但只能部署谷歌在其文档中提供的测试 Django 应用程序。此过程包括下载 cloud_sql_proxy 并在终端 (MacOS) 中运行以下命令:
./cloud_sql_proxy -instances="my-instance-274702:us-central1:fms"=tcp:3306
此命令开始运行代理,以便在本地连接到云中的数据库。一切正常,直到我用 ctrl + C 终止代理。当我运行以下命令再次启动代理时,出现以下错误:
ludovico@Ludovicos-MacBook-Pro django % ./cloud_sql_proxy -instances="my-instance-274702:us-central1:fms"=tcp:3306
2020/04/18 23:38:10 Rlimits for file descriptors set to {&{8500 9223372036854775807}}
2020/04/18 23:38:12 listen tcp 127.0.0.1:3306: bind: address already in use
我第一次执行此操作时遇到此错误,但我通过关闭在端口 3306 上运行的 MySQL 服务器来修复它。但是,现在端口 3306 已绑定到 cloud_sql_proxy,因此它会引发错误并且是无法启动代理。如果我使用端口 3307 运行相同的命令,它就可以正常工作:
./cloud_sql_proxy -instances="my-instance-274702:us-central1:fms"=tcp:3307
但是 Django 不寻找端口 3307,而是寻找端口 3306。
3306端口可以解绑吗?更好的是,是否有命令开始运行代理而不是每次绑定和解除绑定端口 3306?
【问题讨论】:
-
您好,这样做,“ss -lptn”这将显示您正在运行的进程。检查在端口 3306 上运行的进程,然后通过“kill -9 {process_id}”终止该进程并重新运行您的代理应用程序。它将在 3306 上运行。然后 django 将正常工作。如果可行,请发表评论。
-
@Rahulroy "ss - lptn" 在终端返回错误:zsh: command not found: ss-lptn.
-
命令是 ss -lptn 在 ss 和 "-lptn" 之间有一个空格希望你正确地绑定命令。它应该在 linux 环境下工作正常。
-
我在 Mac 上,但我找到了一个类似的命令,谢谢
-
@Rahulroy 请将您的第一条评论作为答案,将其标记为答案并点赞
标签: mysql django google-cloud-platform google-cloud-sql cloud-sql-proxy