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

Я впервые использую SSH-туннелирование, поэтому пытаюсь понять, как его настроить.

У меня есть удаленный сервер Linux, на котором размещена база данных MySQL, к которой я пытаюсь подключиться. Чтобы получить доступ к базе данных MySQL напрямую через программное обеспечение, которое распознает только локальные базы данных, я полагаю, что туннелирование SSH было бы правильным способом настройки доступа, верно?

Теперь я пытаюсь настроить туннелирование на своем «домашнем» компьютере, на котором запущено программное обеспечение, пытающееся получить доступ к базе данных MySQL. Мой первый вопрос: это обратное туннелирование или обычное туннелирование? Во-вторых, это локальное или удаленное туннелирование?

Наконец, насколько я понимаю, мой код должен выглядеть примерно так

ssh -L 8080:mylinuxserver.mycompany.com:22 [email protected]

Это правильно? Является ли мой исходный порт «22», так как я использую SSH, и мой порт назначения 8080 (или есть что-то более подходящее)?

Когда я пытаюсь использовать приведенный выше код, я могу войти в систему, используя свою парольную фразу (поскольку мой ключ уже находится в MyLinuxServer), но когда я пингую localhost:8080, он не может найти хост.

Что я делаю не так?


person Dezzie    schedule 25.03.2014    source источник


Ответы (2)


У меня есть удаленный сервер Linux, на котором размещена база данных MySQL, к которой я пытаюсь подключиться.

Команда должна быть:

ssh -L 8080:localhost:3306 [email protected]

Где:

  1. 8080: есть ли локальный порт на вашей рабочей станции.
  2. localhost: соответствует mylinuxserver.mycompany.com
  3. 3306: порт MySQL выше localhost.

затем подключитесь (со своей рабочей станции) к MySQL как:

mysql -h 127.0.0.1 --port=8080 

Кроме того, ping localhost:8080 неправильно. Ping не может так работать.

person slayedbylucifer    schedule 26.03.2014
comment
В моем случае терминал принял порт как mysql -h 127.0.0.1 -u root -p -P 8080; - person Ritesh; 23.10.2015

Попробуй это:

ssh -f [email protected] -L 3307:mysql1.example.com:3306 -N

Затем, чтобы получить доступ к mysql, к которому вы пытаетесь подключиться:

mysql -h 127.0.0.1 -P 3307
person martinezjc    schedule 25.03.2014
comment
Он выполняется правильно, но я все еще не могу успешно пропинговать его, потому что он не может найти хост. Та же проблема, что и у меня с кодом, который я указал в своем вопросе. - person Dezzie; 25.03.2014
comment
Когда я пытаюсь запустить команду mysql, она показывает, что команда не найдена. - person Dezzie; 25.03.2014