Справочник

Порт 3306: MySQL и MariaDB — как подключиться безопасно

На порту 3306 ждут подключений MySQL и MariaDB. В Ubuntu база принимает подключения только с самого сервера — и это правильно. С вашего компьютера к ней можно подключиться через SSH-туннель, не открывая порт всему интернету.

Обновлено 10.10.2026≈ 5 мин чтения
Содержание 6

Что слушает порт 3306

3306 — порт по умолчанию и у MySQL, и у MariaDB. В Ubuntu 24.04 в файлах настроек обеих баз стоит строка bind-address = 127.0.0.1. Она значит: база принимает подключения только от программ на самом сервере. Сайт на этом же VPS работает с ней без проблем, а снаружи к порту не подключиться, даже если фаервол выключен.

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

sudo ss -tlnp | grep ':3306 '

127.0.0.1:3306 — база доступна только с самого сервера. Если в строке 0.0.0.0:3306 или *:3306, база ждёт подключений на всех адресах, и от интернета её отделяет только фаервол — проверьте его командой sudo ufw status.

Как подключиться к базе с компьютера

Программа для работы с базой на вашем компьютере подключится к ней через SSH-туннель. Туннель — это проброс порта через подключение SSH: программа подключается к порту на вашем компьютере, а SSH передаёт подключение на сервер, к базе. Открывать порт 3306 наружу при этом не нужно.

Шаг 1. Запустите туннель

Откройте терминал на своём компьютере (как открыть терминал) и введите:

ssh -N -L 3307:127.0.0.1:3306 ivan@203.0.113.10

В примерах адрес сервера — 203.0.113.10, пользователь — ivan: подставьте свои. Адрес сервера указан в панели провайдера.

Что значат части команды: -L 3307:127.0.0.1:3306 — подключения к порту 3307 на вашем компьютере передавать на сервер, к адресу 127.0.0.1 и порту 3306. -N — не открывать командную строку сервера, только держать туннель.

Если SSH спросит пароль или фразу ключа, введите её. После этого курсор останется на новой строке и больше ничего не появится — это значит, что туннель работает. Окно не закрывайте.

Шаг 2. Подключитесь программой

В программе для работы с базой укажите адрес (хост) 127.0.0.1, порт 3307, имя пользователя базы и его пароль — например, те же, что в настройках сайта.

Почему 3307, а не 3306: если на вашем компьютере установлен свой MySQL, порт 3306 у вас уже занят. Подойдёт любой свободный номер.

Пользователь root через туннель не войдёт: в Ubuntu он входит в базу не по паролю, а только из командной строки сервера — подробнее. Подключайтесь пользователем сайта.

Шаг 3. Закройте туннель

Когда закончите, вернитесь в окно терминала и нажмите Ctrl+C.

Туннель доступен только на вашем компьютере: другие устройства в вашей сети к порту 3307 не подключатся — так SSH работает по умолчанию.

Когда нужно открыть порт 3306

Если к базе подключается программа с другого сервера, базу настраивают на приём подключений снаружи, а порт открывают только для адреса этого сервера. По шагам — в разделе Как не открыть базу всему интернету.

Не открывайте порт 3306 для всех: команда sudo ufw allow 3306 пустит к базе любой адрес в интернете, и подбирать пароль к ней сможет кто угодно.

Ошибки и как их исправить

ОшибкаЧто случилосьРазбор
ERROR 2003 (HY000): Can't connect to MySQL serverПодключение к порту 3306 не прошлоРазбор
ERROR 2002 (HY000): Can't connect to local MySQL server through socketБаза не запущена или программа ищет её не тамРазбор
ERROR 1698 (28000): Access denied for user 'root'@'localhost'root входит в базу не по паролюРазбор
Другая ошибкаНайдите её в общей таблицеВсе ошибки MySQL

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026