Я пытаюсь получить доступ к серверу mysql через туннель SSH. Насколько я понимаю, это должно поддерживаться изначально в Mysql Workbench (5.2.35 на Ubuntu 10). Следующие работы:
Открытая оболочка
ssh -f jblow@server.domain.com -L 33187:server.domain.com:3306 -N
Откройте MySql Workbench
подключиться к localhost через порт 33187, используя метод подключения "Стандартный TCP / IP"
Следующее не работает:
убейте любую переадресацию порта ssh, чтобы начать с чистого листа.
Откройте Mysql Workbench
Выберите способ подключения «Стандартный TCP / IP через SSH»
Введите следующие переменные подключения (которые соответствуют ранее работавшей команде ssh:
Конечная цель - предоставить файл конфигурации рабочей среды, который содержит правильную настройку (без паролей) для многих серверов, которые пользователи (разработчики) могут просто разместить на своих машинах и иметь возможность легко получить доступ к соответствующей БД через существующие соединения, перечисленные на первой странице рабочей среды mysql. . В худшем случае я могу дать им сценарий bash, чтобы вставить их .bashrc плюс файл конфигурации рабочего места ... но я бы предпочел один файл, если могу, особенно потому, что у меня есть пользователи в Windows, поэтому, если я могу использовать конфигурацию рабочего места файл, то это будет по сути одна и та же процедура для пользователей Windows и пользователей Linux.
ПРИМЕЧАНИЕ. Цель состоит в том, чтобы получить карту рабочей среды mysql из 3306, которая является портом на удаленном сервере на какой-то другой локальный порт (как это происходит в примере команды ssh). установка 3306 в качестве порта сервера MySQL вызывает ошибку, потому что 3306 недоступен на моем локальном компьютере (потому что на нем запущен локальный экземпляр mysql). Посмотрев на это дальше, выясняется, что это невозможно. Если я убью локальный экземпляр сервера mysql (освобождая порт 3306), тогда рабочая среда mysql может подключиться, используя 3306 в качестве порта сервера mysql (который является правильным портом на удаленной машине), но, похоже, нет способа поддерживать оба локальный экземпляр mysql и удаленное соединение через ssh исключительно через рабочую среду mysql, так как возникают конфликты портов. Для использования сопоставления портов требуются либо некоторые записи iptables, либо туннелирование ssh отдельно от конфигурации рабочей среды mysql, я думаю.
Вы выполняете перенаправление ssh в обратном направлении, то есть перенаправляете локальный порт 3306 на 33187, используйте -R localhost: 33187: server.domain.com: 3306. Для рабочей среды используйте MySQL Server Port 3306 и MySQL Hostname: localhost
В чем конкретно заключается ошибка, которую вы получаете? У меня сама проблема с использованием настраиваемого порта ssh, то есть SSH Hostname server.mydomain.com:13711 рабочая среда по какой-либо причине фактически не пытается установить соединение (проверено путем просмотра журналы)
MySQL Hostname: localhost (or 127.0.0.1, tried it both ways)
MySQL Server Port: 33187
Измените его на:
MySQL Hostname: server.domain.com
MySQL Server Port: 3306
и попробуй еще раз.