2014-02-19 3 views

ответ

-3

с today версия v2.1.0 поддержка защищена connection over ssl. Обратите внимание, что ключи SSH конфигурации не связана с MySQL: смотрите, как настроить mysql secure connection for server and client

+0

Привет @AndreySidorov ... Можете ли вы сказать мне, поддерживает ли 'node-mysql' подключение к MySQL через SSH-туннель? –

+0

Нет, это вне области node-mysql. Просто создайте туннель и используйте его с node-mysql. Вы можете использовать (ssh2) [https://github.com/mscdex/ssh2] модуль для пересылки порта.Кроме того, node-mysql2 может принимать любые двунаправленные потоки в качестве транспорта, вы даже можете совершать магию socat и передавать порожденный процесс stdin/out как базовый поток –

+0

Я запускаю SSH-туннель на своей машине, и я могу подключиться к удаленной базе данных через командную строку 'mysql' здесь (127.0.0.1, порт 13306), но' node-mysql' не может быть успешным с соединением 'ECONNREFUSED'. Похоже, я не могу заставить его фактически попробовать хост и порт, которые я передаю ему. –

4

Я получил это точно работающую систему сегодня, и это должно быть принято 10 минут, но я потратил 5 часов на немой ошибка, которую я написал (который был прямым результатом того, что я слишком старался сделать это через 5 минут).

Вы можете выполнить компонент туннеля SSH полностью независимо, а затем указать узел-mysql (или любой другой клиент sql ...) в вашу БД, используя TCP, туннелированный через SSH.

Просто настроить SSH туннель, как этот

ssh -N -p 22 [email protected] -L 33306:localhost:3306 

Оставьте, что происходит в фоновом режиме (см articles like this больше в глубине информации).

Затем просто отправьте любой клиент MySQL на порт 33306 на localhost. Он будет фактически подключен, как если бы вы были на удаленном сервере и использовали порт 3306.

+0

Спасибо! работал как шарм! –

+0

Это действительно сработало! Каков наилучший способ убедиться, что соединение всегда работает? –

+0

Я не уверен, что лучший метод, но [это] (http://software.clapper.org/daemonize/) может быть началом. –

1

Большое спасибо Стив, мой ответ мне очень помогает. просто, чтобы сделать его более четкое использование

SSH -f [email protected] -L 2000: personal-server.com: 25 -N

Параметр -f указывает SSH идти на задний план как раз перед ним выполняет команду. За этим следует имя пользователя и сервер, в который вы входите. -L 2000: personal-server.com: 25 находится в виде -L local-port: host: remote-port. Наконец, -N инструктирует OpenSSH не выполнить команду на удаленной системе

Для подключения к Монго использовать любой порт вы установили, как локальный порт (в данном случае порт 2000)

Для примера скажу, я хочу для подключения на удаленном сервере с IP 192.168.0.100, а mongo работает на порту 27017.

Предположим, что пользователь, называемый elie, с паролем eliepassword имеет доступ к ssh на порту 22 Мне нужно будет это сделать Первый запуск на терминале следующие:

ssh -f [email protected] -L 2002: 127.0.0.1: 2 7017 -N

В моей связи Монго я буду делать:

вар мангуст = требуется ('мангуст');

mongoose.connect ('mongodb: // localhost: 2002/mydatabase');

module.exports = mongoose.connection;

Надеюсь, это даёт понять.

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