2012-02-02 3 views
3

Я могу подключиться к моему db с Sequel Pro просто отлично, но я не могу через командную строку. Я следовал их указаниям здесь: http://www.sequelpro.com/docs/Connecting_to_a_MySQL_Server_on_a_Remote_Host#Do_I_need_to_use_the_Terminal_for_SSH_connections.3FЯ могу подключиться к БД через Sequel Pro, но не через командную строку

В своей команде я заменяю следующее из окна подключения и вкладки SSH в Sequel Pro:

ssh -L 1234:mysqlhost:3306 [email protected] 

mysqlhost => MySQL Host 
sshuser => SSH User 
sshhost => SSH Host 

И в ответ на запрос пароля, я использую один из «Пароль SSH»

Я не уверен, что Sequel Pro делает по-другому за кулисами.

+0

Итак, вы запустите эту команду, и * then *, что произойдет, или что еще вы делаете? Вы просто настраиваете туннель с помощью этой команды SSH. –

ответ

7

Эта инструкция из документации Sequel Pro - не совсем полная история; это просто говорит вам, как настроить туннель. Вам нужен второй шаг, чтобы на самом деле использовать его для подключения к серверу MySQL.

Сам процесс состоит из двух шагов:

  1. Создать туннель.

    ssh -N -L 1234:mysqlhost:3306 [email protected] 
    

    -N, что я добавил просто говорит ssh, что вы только создания туннеля, и вы не хотите, чтобы запустить оболочку на sshhost. Выполнение этой команды будет выглядеть так, как будто ничего не делает: вот что должно выглядеть.

    Пока команда ssh работает, подключение к порту 1234 на локальном компьютере будет тоннельный через sshhost порт 3306 (порт MySQL) на mysqlhost.

  2. Подключитесь к MySQL, используя туннель.

    Теперь вам нужно запустить клиент командной строки mysql. Команда ssh вы просто побежал еще работает, так что проще всего для вас сделать, это открыть новое окно терминала или вкладки и выполнить команду:

    mysql -P 1234 -u mysqluser -p 
    

    для подключения к базе данных. Часть -P 1234 является единственной внеуниверсальной частью этой команды, и она просто соединяет клиента mysql, используя порт, который вы настроили в первой команде для туннелирования.

Когда вы закончите с туннелем, либо закрыть исходное окно терминала или использовать Ctrl-C, чтобы остановить процесс ssh.

+0

Как это можно использовать для создания базы данных на сервере в сценарии bash? Было бы замечательно, если бы вы рассмотрели мой вопрос здесь: http://stackoverflow.com/questions/12905077/create-mysql-database-through-ssh-in-a-bash-script – Spoeken

+2

Это работало для меня почти точно, но в Шаг 2 Мне пришлось указать, что хост был 127.0.0.1, как 'mysql -u user -h 127.0.0.1 -p', иначе он не сработает. – jkeesh

Смежные вопросы