фоновая цель: я хочу ограничить входящие подключения к серверу MYSQL только для определенного хоста, установив входящие правила брандмауэра Windows.
Порт сервера MYSQL открыт на 3306.
Однако, когда я открываю настройки брандмауэра, я вижу, что на 3306 и 33060 открыты два порта, как показано ниже:
что это такое?
решение1
Этот порт соединения используется клиентами mysql для подключения к серверу mysql. Однако, в отличие от порта 3306, эти соединения используют так называемый x-протокол. Этот порт поддерживается такими клиентами, как Mysql-Shell или сообществом Mysql-Connectors, в то время как mysqlclient и инструменты, такие как mysqldump, используют классический порт. X-протокол — это альтернативный интерфейс запросов mysql, который включает альтернативный API, называемый X-DevAPI. Он позволяет вам получать доступ к данным в формате json, а также поддерживает SQL. Однако вам необходимо разрешить его в настройках брандмауэра, если вы не отключите этот порт/протокол на своем сервере mysql. Итак, подведем итог: x-протокол и порт 33060 являются необязательными и необязательными.
Ссылка для получения общей информации о портах MySQL: https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html
Ссылка на X-протокол: https://www.percona.com/blog/2019/01/07/understanding-mysql-x-all-flavors/
решение2
Список портов, используемых MySQL, доступен здесь:https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html
Для обычного использования вам понадобится только порт 3306. Проверьте файлы конфигурации сервера, чтобы узнать, какие порты он прослушивает.