首页 > 解决方案 > 如何解绑3306端口?

问题描述

我是谷歌云的新手,但只能部署谷歌在其文档中提供的测试 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?

标签: mysqldjangogoogle-cloud-platformgoogle-cloud-sqlcloud-sql-proxy

解决方案


使用 ss -lptn sport 命令显示哪个端口绑定到哪个进程。然后杀死在3306上运行的进程, kill -9 {process_id} 这将解除你繁忙的3306端口的绑定。然后你可以在3306上运行进程。


推荐阅读