Windows Navicat подключается к MySQL Docker и сообщает об ошибке 2003, 10060 «Неизвестная ошибка».

1. История

Раньше я установил докер и запустил контейнер MySQL. Я также использовал navicat для подключения к MySQL в докере и создания базы данных. Я на некоторое время перестал использовать Windows и перешел на MacOS. Затем я вернулся к компьютеру с Windows и нашел navicat. База данных не может быть подключена. Скриншот ошибки выглядит следующим образом.

(Поскольку моя проблема решена, я не могу найти картинку ошибки. Эта картинка скопирована с чужой, чтобы воспроизвести ошибку
)Вставьте сюда описание изображения

2. Что я пробовал?

  1. Я вхожу в контейнер, используяMySQL -uroot -pОбнаружено, что вход в MySQL возможен, но использование внешнего подключения к Docker MySQL нецелесообразно, поэтому предполагается, что сама проблема не внутри контейнера.
  2. Большинство решений, предоставляемых Baidu в Интернете, заключаются в использовании консоли для входа в MySQL, проверке того, является ли пользователь root % (разрешены все IP-соединения), а затем настройке разрешений, изменении пароля и обновлении разрешений. , хотя я знаю, что это крайне маловероятно.Чтобы решить проблему, я попробовал еще раз, но окончательный результат действительно не был решен.
  3. Затем я увидел в Интернете, что я пытался проверить IP-адрес докер-машины (поскольку моя Windows имитировала Linux, она, кажется, называлась WLS или что-то в этом роде, а затем предоставила ее для использования Docker Desktop), я ввел это Linux Машина проверяет свой IP через ifconfig, и пытается заполнить IP адрес как этот IP в navicat, но всё равно не получается! К этому времени я уже был полон грязных слов~
  4. Позже я не поверил, поэтому еще раз проверил сопоставление портов, и оказалось, что это действительно был 3306, сопоставленный с внешним 3306. Я больше не верил. Могу ли я закрыть исходный контейнер MySQL и запустить его снова? Тогда я использовал умело.Набор команд(игнорируя директорию монтирования):
docker run -p 3306:3306 --name mysql8 -e MYSQL_ROOT_PASSWORD=123456  -d mysql

В это время я обнаружил, что контейнер не может запуститься, когда я туда зашел. Я был удивлен ~
сообщение об ошибке было примерно следующим:

Порты недоступны: открытый порт TCP 0.0.0.0:xxxxxx -> 0.0.0.0:0:
прослушивание TCP 0.0.0.0:xxxxx: привязка: Была предпринята попытка получить доступ к сокету
способом, запрещенным его разрешениями на доступ.

Затем я вернулся и попытался запустить изначально закрытый контейнер, но обнаружил, что его запустить невозможно. Хорошо, Baidu допустила эту ошибку.

3. Решить

В зависимости от причины, по которой указанный выше порт недоступен, поисковая система находит решение:
Перезапустить Виннат

  • Шаги:
  1. Запустите PowerShell от имени администратора
  2. останови Виннат
net stop winnat
  1. Запустить Winnat
 net start winnat

Затем я вернулся, чтобы запустить свой контейнер, и он оказался жив!

Подключитесь к моему MySQL в navicat, вау~ это работает.
Вставьте сюда описание изображения
Удалите вновь созданный контейнер и хватит!

рекомендация

отblog.csdn.net/qq_17229141/article/details/126478908