Как отвязать порт 3306?

Я новичок в облаке Google, но только что смог развернуть тестовое приложение Django, которое Google предоставил в своей документации. Этот процесс включал загрузку 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

Я получил эту ошибку в первый раз, когда сделал это, но я исправил ее, выключив сервер MySQL, который работал на порту 3306. Однако теперь порт 3306 уже привязан к cloud_sql_proxy, поэтому он выдает ошибку и не может запустить прокси. Если я запускаю ту же команду с портом 3307, она работает нормально:

./cloud_sql_proxy -instances="my-instance-274702:us-central1:fms"=tcp:3307

Но Django не ищет порт 3307, а ищет порт 3306.

Можно ли отвязать порт 3306? Еще лучше, есть ли команда для запуска прокси вместо привязки и отмены привязки порта 3306 каждый раз?


person Ludovico Verniani    schedule 19.04.2020    source источник
comment
привет, сделайте это, ss -lptn это покажет вам запущенный процесс. проверьте процесс, запущенный на порту 3306, затем завершите этот процесс с помощью kill -9 {process_id} и повторно запустите свой прокси-сервер, приложение. Он будет работать на 3306. Тогда django будет работать нормально. Прокомментируйте, если это работает.   -  person Rahul    schedule 19.04.2020
comment
@Rahulroy ss - lptn возвращает ошибку в терминале: zsh: команда не найдена: ss-lptn.   -  person Ludovico Verniani    schedule 19.04.2020
comment
команда ss -lptn, между ss и -lptn есть пробел, надеюсь, вы правильно связали команду. Он должен нормально работать в среде Linux.   -  person Rahul    schedule 19.04.2020
comment
Я использую Mac, но я нашел похожую команду, которая работала, спасибо   -  person Ludovico Verniani    schedule 20.04.2020
comment
@Rahulroy, пожалуйста, оставьте свой первый комментарий в качестве ответа, чтобы отметить его как ответ и проголосовать за него   -  person Jan Hernandez    schedule 21.04.2020
comment
@JorgeHDZ конечно!   -  person Rahul    schedule 21.04.2020


Ответы (1)


используйте ss -lptn команду sport, чтобы показать, какой порт привязан к какому процессу. Затем убейте процесс, запущенный на 3306, с помощью kill -9 {process_id}, это отвяжет ваш занятый порт 3306. Затем вы можете запустить процесс на 3306.

person Rahul    schedule 21.04.2020