Как подключиться к localhost в heidisql
Перейти к содержимому

Как подключиться к localhost в heidisql

  • автор:

Подключение к удаленной базе данных через SSH-тоннель

И снова привет. Небольшой пост о том, как подключаться к удаленной базе данных через SSH-тоннель. Как правило, у ровных админов на серверах в целях безопасности запрещено подключение к базе данных напрямую. Что же делать в этом случае?

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

Допустим, у нас есть хостинг с SSH доступом. Допустим, у нас есть программа HeidiSQL. И для полной гармонии мы уже настроили доступ к серверу по SSH-ключу. Запускаем HeidiSQL, создаем новое подключение и приступаем к настройкам:

Настройки подключения базы данных

  • Выберите Network type как MySQL (SSH tunnel);
  • В качестве IP укажите localhost или 127.0.0.1, т.к. относительно сервера БД лежит локально;
  • Указываем пользователя базы данных и пароль.

Настройка доступа к серверу

Настройки для подключения к серверу

  • Для начала необходимо перейти по ссылке и скачать программу Plink.exe. Программа представляет из себя один файл, путь к которому мы не забываем указывать;
  • Указываем адрес нашего сервера;
  • Заполняем логин и указываем путь к Private Key.

Все! Теперь можно полноценно работать с удаленной базой данной, как мы это делаем обычно с локальными.

SSH Tunnel в HeidiSQL

Решил написать эту статью под впечатлением нескольких часов проведенных в поисках проблем с подключением к базе через SSH Tunnel в HeidiSQL.

Если есть доступ к серверу по SSH , то гораздо удобней работать с базой через HeidiSQL, чем скажем через phpMyAdmin.

heidisql settings

Итак настройка подключения:
1) вкладка Settings:
Здесь указываем параметры подключения к базе из конфига CMS.

heidisql ssh tunnel

2) вкладка SSH tunnel:
plink.exe можно взять тут, и дальше host, port, user, password от ssh.

Если после этого вам удастся подключиться к базе, значит вам повезло и можно дальше не читать.

SQL Error (2003): Can

У меня была ошибка:

Запускаем консоль, заходим в папку где лежит plink.exe и вводим:

> plink.exe -ssh server_user@server_host -pw “server_pass” -P 22 -N -L 3307:localhost:3306

При первом соединении plink спрашивает доверяем ли мы серверу с данным key fingerprint, соглашаемся. После чего plink заносит этот ключ в реестр windows в HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys ( что можно увидеть используя утилиту windows regedit )

После этого идем в HeidiSQL и пробуем конектится, в моем случае все прошло успешно.

Если у вас установлен ssh клиент putty (или WinSCP, с которым иногда устанавливается и putty) то этаже ошибка может возникать из за того что plink использует настройки заданные в putty. В этом случае может помочь следующее:
1) Запускаем putty и в его настройках указываем Connect type – любой не ssh ( например Telnet ), сохраняем настройки.
2) Идем в HeidiSQL и на вкладке SSH tunnel в поле plink.exe location через пробел указываем флаг -ssh , сохраняемся, пробуем соединиться.

Вот и все, всем удачи и поменьше таких проблем .

Эта проблема также обсуждалась тут.

This entry was posted in Разное on April 30, 2013 by admin .

4 thoughts on “ SSH Tunnel в HeidiSQL ”

  1. andrey September 11, 2013 at 10:14 am Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть.http://www.valentina-db.com/en/valentina-studio-overview
  1. Aiksandr August 22, 2014 at 10:12 am Спасибо за статью, надоело уже пробрасывать туннели ко всем базам)

Подключение к Базе Данных при помощи утилиты HeidiSQL

ошибка показана на фото

У меня стоит локалка Open Server. Хочу подключиться к БД через утилиту HeidiSQL. Выдаёт ошибку «Access denied for user ‘root’@’localhost'(using password:NO)». Как быть? Что делать? Не подскажите??

Отслеживать
задан 3 янв 2021 в 19:32
15 6 6 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Ошибка означает, что отсутствуют права доступа для пользователя root. Т.к. вы используете сервер OpenServer, для авторизации БД MySQL по умолчанию используется:

Как видно из скриншота, вам необходимо задать пароль.

Отслеживать
ответ дан 27 мая 2021 в 18:21
107 2 2 серебряных знака 13 13 бронзовых знаков

  • mysql
  • база-данных
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Support PostgreSQL

/ Разделитель изменен на ; / / Подключение к 127.0.0.1 с помощью PostgreSQL (экспериментально), с именем пользователя postgres, используя пароль: Yes… / SELECT VERSION(); / Соединено. Идентификатор процесса: 5028 / SET statement_timeout TO 0; SELECT EXTRACT(EPOCH FROM CURRENT_TIMESTAMP — pg_postmaster_start_time())::INTEGER; SELECT «nspname» FROM «pg_catalog».»pg_namespace» ORDER BY «nspname»; SET search_path TO E’pg_catalog’, E’public’; / Открытие сеанса «PostgresSQL» / SELECT , pg_table_size(QUOTE_IDENT(t.TABLE_SCHEMA) || E’.’ || QUOTE_IDENT(t.TABLE_NAME))::bigint AS data_length, pg_relation_size(QUOTE_IDENT(t.TABLE_SCHEMA) || E’.’ || QUOTE_IDENT(t.TABLE_NAME))::bigint AS index_length, c.reltuples, obj_description(c.oid) AS comment FROM «information_schema».»tables» AS t LEFT JOIN «pg_namespace» n ON t.table_schema = n.nspname LEFT JOIN «pg_class» c ON n.oid = c.relnamespace AND c.relname=t.table_name WHERE t.»table_schema»=E’pg_catalog’; / Неизвестный идентификатор типа данных #1034 для «nspacl». Возврат к UNKNOWN. / / Неизвестный идентификатор типа данных #1034 для «relacl». Возврат к UNKNOWN. / / Неизвестный идентификатор типа данных #1009 для «reloptions». Возврат к UNKNOWN. */ SELECT «p».»proname» FROM «pg_catalog».»pg_namespace» AS «n» JOIN «pg_catalog».»pg_proc» AS «p» ON «p».»pronamespace» = «n».»oid» WHERE «n».»nspname»=E’pg_catalog’;

ansgar posted 7 years ago

What you see in the left tree are not databases, these are schemata, or?

[expired user #10239] posted 7 years ago

As I understand databases are displayed not only the schemas, but in the scheme — «public» managed to find a table — «users». Data Type in a field «email» is unknown. He was created with «domain»

P.S. Sorry for my bad english language, I am just russian man

ansgar posted 7 years ago

Oh your english is better than you might think, at least I have no bigger problems reading.

That unknown data type is an issue which I can probably fix. You could be so nice and watch out for a line in the lower SQL log panel, which says something like

Unknown datatype X. Fall back to UNKNOWN

Is that «X» = «DOMAIN»?

[expired user #10239] posted 7 years ago

SELECT «p».»proname» FROM «pg_catalog».»pg_namespace» AS «n» JOIN «pg_catalog».»pg_proc» AS «p» ON «p».»pronamespace» = «n».»oid» WHERE «n».»nspname»=E’public’; SELECT CURRENT_USER; SELECT «p».»prosrc», «p».»proargnames», «p».»proargtypes», «p».»prorettype» FROM «pg_catalog».»pg_namespace» AS «n» JOIN «pg_catalog».»pg_proc» AS «p» ON «p».»pronamespace» = «n».»oid» WHERE «n».»nspname»=E’public’AND «p».»proname»=E’min’;

/ Неизвестный идентификатор типа данных #1009 для «proargnames». Возврат к UNKNOWN. / / Неизвестный идентификатор типа данных #24589. Возврат к UNKNOWN. /

SELECT DISTINCT a.attname AS column_name, a.attnum, a.atttypid, FORMAT_TYPE(a.atttypid, a.atttypmod) AS data_type, CASE a.attnotnull WHEN false THEN E’YES’ ELSE E’NO’ END AS IS_NULLABLE, com.description AS column_comment, def.adsrc AS column_default, NULL AS character_maximum_length FROM pg_attribute AS a JOIN pg_class AS pgc ON pgc.oid = a.attrelid LEFT JOIN pg_description AS com ON (pgc.oid = com.objoid AND a.attnum = com.objsubid) LEFT JOIN pg_attrdef AS def ON (a.attrelid = def.adrelid AND a.attnum = def.adnum) WHERE a.attnum > 0 AND pgc.oid = a.attrelid AND pg_table_is_visible(pgc.oid) AND NOT a.attisdropped AND pgc.relname = E’users’ ORDER BY a.attnum; WITH ndx_list AS ( SELECT pg_index.indexrelid, pg_class.oid FROM pg_index, pg_class WHERE pg_class.relname = E’users’ AND pg_class.oid = pg_index.indrelid ), ndx_cols AS ( SELECT pg_class.relname, UNNEST(i.indkey) AS col_ndx, CASE i.indisprimary WHEN true THEN E’PRIMARY’ ELSE CASE i.indisunique WHEN true THEN E’UNIQUE’ ELSE E’KEY’ END END AS CONSTRAINT_TYPE, pg_class.oid FROM pg_class JOIN pg_index i ON (pg_class.oid = i.indexrelid) JOIN ndx_list ON (pg_class.oid = ndx_list.indexrelid) )SELECT ndx_cols.relname AS CONSTRAINT_NAME, ndx_cols.CONSTRAINT_TYPE, a.attname AS COLUMN_NAME FROM pg_attribute a JOIN ndx_cols ON (a.attnum = ndx_cols.col_ndx) JOIN ndx_list ON (ndx_list.oid = a.attrelid AND ndx_list.indexrelid = ndx_cols.oid);

/ Неизвестный тип данных «EMAIL_ADDRESS» для «email». Откат к UNKNOWN. / / Неизвестный тип данных «EMAIL_ADDRESS» для «email». Откат к UNKNOWN. /

If I try to change the data type, it turns out the following:

ALTER TABLE «users» ALTER COLUMN «email» UNKNOWN NULL;

/* ОШИБКА: ошибка синтаксиса (примерное положение: «UNKNOWN») LINE 2: ALTER COLUMN «email» UNKNOWN NULL

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *