Как можно отсоединить порт 3306? - PullRequest
0 голосов
/ 19 апреля 2020

Я новичок в облаке 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?

1 Ответ

1 голос
/ 21 апреля 2020

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

...