Я пытаюсь подключиться к 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, что является частью проблемы, если я правильно ее понимаю.