Назад | Перейти на главную страницу

MySQL не может подключиться через туннель SSH - в соединении отказано

Я пытаюсь подключиться к MySQL из своего графического интерфейса MySQL (Sequel Pro, если это важно), используя туннель SSH. Однако я продолжаю получать следующую ошибку (mysql.log):

[Примечание] Прервано соединение 98 с базой данных: 'example' user: 'example_user' host: 'localhost' (Получена ошибка чтения коммуникационных пакетов)

Мои настройки подключения выглядят следующим образом:

Я могу без проблем подключиться к SSH. Я также могу подключиться к MySQL изнутри SSH (используя mysql -u example_user -p -h 127.0.0.1)

Однако туннелирование не работает. у меня есть AllowTcpForwarding yes в sshd_config. Конфигурация MySQL имеет bind-address = 127.0.0.1.

Я использую на своем сервере 16.04 LTS и MySQL Community Edition.

Что я делаю не так? Я впервые вижу эту проблему.

Вы можете создать несколько туннелей с помощью команды на рабочей станции, например:

ssh -L 10080:127.0.0.1:80 -L 10006:127.0.0.1:3306 user@server

Есть: 127.0.0.1 - IP-адрес туннеля назначения для подключения с сервера, 80 и 3306 порты назначения, 10080 и 10006 - порты локальной рабочей станции. Это позволит вам подключиться к серверу MySql и серверу Http через интерфейс localhost сервера. Команда выполнения mysql -p -u db_user -P 10006 -h 127.0.0.1 database_name на рабочей станции для подключения к серверу MySql. Вы можете подключиться к веб-интерфейсу PhpMyAdmin, что разрешено только с 127.0.0.1. Для этого просто напишите адрес http://127.0.0.1:10080 в вашем браузере.

У меня была аналогичная проблема, и за это ответ, решением было удаление «любого» пользователя.

Кажется, MySQL видит разницу между пользователем, подключающимся через localhost, и 127.0.0.1, что является частью проблемы, если я правильно ее понимаю.