Назад | Перейти на главную страницу

Невозможно использовать SSH-туннель с PuTTY (Windows Vista) для подключения к MySQL в системе Linux

Цель:

Я пытаюсь скопировать базу данных на свой локальный компьютер под управлением Windows Vista.

Настроить:

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

не удалось с этим сообщением: MySQL Error Number 2003 Не удается подключиться к серверу MySQL на 127,0.0.1 (10061)

Как я могу это исправить?

Похоже, у вас это "задом наперед". Пункт назначения - это не ваша кольцевая проверка, это удаленный компьютер в другой сети. Или вы используете Remote вместо Local для туннеля.

Попробуйте перевернуть IP-адреса, например:

putty.exe -L 3307:mysql.yourdomain.com:3306 

Где mysql.yourdomain.com - это имя хоста, на котором находится служба MySQL, с которой вы пытаетесь связаться. Когда putty выскакивает диалоговое окно подключения, введите адрес, подключитесь и войдите в систему. Затем подключитесь к localhost: 3307 с помощью инструмента администратора.

Вы не хотите и не нуждаетесь в PuTTY для удаленного доступа к базе данных.

Если у вас есть разрешения на подключение к удаленной базе данных с локального компьютера, вы можете просто использовать mysqldump --host=remotemachine --user=remotesqluser --password=remotepassword --databases databasename>database.dump в Vista, затем загрузите его в свой локальный ящик с помощью mysql --port=3307 --host=127.0.0.1 --user=localsqluser --password=localpassword <database.dump - если бы вы запускали Linux локально, я бы просто перенаправил одну программу в другую, но я не знаю, поддерживает ли это cmd.exe Vista.

если ты не могу подключиться удаленно, но имея доступ администратора к базе данных Linux, вы можете предоставить себе разрешения (в удаленной командной строке MySQL) с помощью grant select on databasename.* to 'remotesqluser'@'yourexternalIPaddress' identified by 'remotepassword'; (Думаю select это все, что тебе нужно). Получив доступ, вы можете скопировать базу данных, как указано выше. Использовать revoke чтобы потерять привилегии, когда закончите.

Если вы не можете ничего из этого сделать, вы воля нужен PuTTY: подключитесь к Linux и запустите mysqldump командовать там (с --host=127.0.0.1). Скопируйте файл дампа на свой компьютер с Windows Vista любым удобным для вас способом - SCP, FTP и HTTP, если у вас есть удобный веб-сервер, - а затем вы можете загрузить базу данных локально, как указано выше. Не забудьте удалить файл дампа в Linux после того, как закончите.

НОТА если ваши параметры mysqldump настроены неправильно, вы, вероятно, захотите добавить --extended-insert к команде для ускорения работы (позволяет использовать многострочные вставки), и если в базе данных есть какие-либо хранимые процедуры для передачи, --routines также.

Я только что пробовал с Windows 7, и у меня тоже не работает. Порт будет перенаправлен, но не переназначен. Будет по-прежнему localhost:3306, который в вашем случае конфликтует с локальным сервером. В документации PuTTY также говорится, что это будет правильный путь, но, возможно, новая модель безопасности Windows Vista блокирует переназначение портов.

Я бы посоветовал, если вы используете порт 3306 локально, не туннелировать к localhost (который обычно отображается на 127.0.0.1), но для туннелирования на другой IP-адрес в вашем диапазоне обратной связи (возможно, 127.0.0.2). Если ваш локальный SQL-сервер настроен правильно, он слушает только 127.0.0.1:3306, ваш удаленный туннелированный SQL-сервер может прослушивать 127.0.0.2:3306, поэтому переназначение порта не требуется.