Как подключиться к mysql ssh
Удаленное подключение к mysql из PHP по shh туннелю
Недавно получил задачу — подключаться к удаленной базе данный MySQL (установленной на ОС Windows 7) и забирать оттуда данные. Реализация должна быть на языке PHP. Для использования ssh туннеля на машине с MySQL был установлен софт — FreeSSHd.
Важное замечание — машина находится за прокси сервером, однако на нем уже созданы правила перенаправления портов. То есть если я соединяюсь с сервером по заданному порту — он переадресует меня на нужную мне машину.
Хостинг не выделенный и не виртуальный, поэтому клиентов туда не поставить.
Настройка ssh соединения
Для настройки ssh соединения я использовал функцию — ssh2_connect():
$connection = ssh2_connect(‘my IP’,port) or die(mysql_error());
— соединение установлено успешно;
Затем я авторизуюсь с помощью логина и пароля:
ssh2_auth_password($connection, ‘username’, ‘pass’);
— тоже все хорошо;
Затем я строю туннель:
$tunnel = ssh2_tunnel($connection, ‘ip address’, port) or die(mysql_error());
И вот с этого места начинаются проблемы.
До сих пор мне не понятно — как, при успешном создании туннеля я должен подключиться к mysql?
По моей логике я должен использовать функцию — mysqli_connect():
$dbs = mysqli_connect(‘ip addr’, ‘mysqluser’, ‘pass’,’dbname’, port) or die (mysql_error());
— в поле ip addr я, по идее, должен указать localhost т.к. ssh туннель, как vpn. Однако ничего не выходит.
Удалённое подключение к серверу MySQL с помощью MySQL Workbench
Сервер баз данных хранит в таблицах огромное количество важной информации. Проще всего взаимодействовать с этими данными на локальном компьютере с помощью графического интерфейса. Чтобы создать удаленное подключение к серверу базы данных, как правило, необходимо настроить MySQL для прослушивания всех интерфейсов, ограничить доступ к порту 3306 в брандмауэре и настроить права пользователей и хостов. Прямые подключения к MySQL могут стать угрозой безопасности.
Чтобы устранить эти проблемы, существуют различные инструменты для удалённого подключения: HeidiSQL в Windows, Sequel Pro для macOS, кроссплатформенный инструмент MySQL Workbench и т.п. С помощью этих инструментов можно создать SSH-подключение к серверу БД и обойти все потенциальные опасности.
Это краткое руководство поможет вам подключиться к удалённому серверу баз данных с помощью MySQL Workbench.
Требования
Также нужно располагать следующей информацией о сервере:
SSH-подключение к серверу баз данных
После установки MySQL Workbench запустите программу. Создайте новое подключение. Для этого нужно нажать кнопку + (в главном окне рядом с MySQL Connections).
На экране появится окно Connect to Database. Введите запрашиваемые данные:
Подключившись к базе данных, вы можете просмотреть информацию о MySQL: состояние базы данных, текущие соединения и конфигурации, пользователи и права доступа. MySQL Workbench также поддерживает импорт и экспорт дампа MySQL, благодаря чему вы можете быстро выполнить резервное копирование и восстановление базы данных.
Список баз данных можно найти в SCHEMAS в левой навигационной панели. Стрелка рядом с каждой базой данных позволяет расширить информацию и перемещаться по таблицам и объектам. Вы можете просматривать таблицы, писать сложные запросы и редактировать данные.
Также MySQL Workbench позволяет управлять соединениями. Для этого выберите в меню Database → Connect to Database, а затем нажмите ⌘U в Mac или CTRL+U в Windows и Linux. Чтобы подключиться к другой БД, создайте новое соединение.
Заключение
MySQL Workbench позволяет быстро создать безопасный SSH-туннель к удалённому серверу баз данных MySQL и взаимодействовать с данными при помощи локальной машины. Этот метод устраняет все потенциально опасные действия и не требует изменений в настройках безопасности MySQL.
Как подключиться к mysql через ssh туннель 2021
По умолчанию сервер MySQL прослушивает только локальный хост, а это значит, что к нему могут обращаться только приложения, работающие на одном хосте.
Однако в некоторых ситуациях может потребоваться подключение к серверу из удаленных мест. Одним из вариантов может быть настройка сервера MySQL для разрешения удаленных подключений, но для этого требуются права администратора, что может привести к угрозе безопасности.
В этом руководстве мы объясним, как создать SSH-туннель и подключиться к серверу MySQL из удаленных клиентов. То же самое относится и к MariaDB.
Предпосылки
Создайте SSH-туннель в Linux и MacOS
Клиент ssh предустановлен на большинстве систем Linux и Unix.
Используются следующие параметры:
После запуска команды вам будет предложено ввести пароль пользователя SSH. После входа вы будете авторизованы на сервере, и SSH-туннель будет установлен. Рекомендуется настроить аутентификацию на основе ключей SSH и подключиться к серверу без ввода пароля.
Теперь вы можете указать клиенту MySQL на локальном компьютере 127.0.0.1:3336 ввести учетные данные для входа в удаленную базу данных и получить доступ к серверу MySQL.
Например, чтобы подключиться к серверу MySQL с помощью клиента командной строки mysql вы должны выполнить:
При появлении запроса введите пароль пользователя MySQL.
Чтобы завершить туннель SSH, введите CTRL+C в консоли, где работает клиент ssh.
Создайте SSH-туннель в Windows
Выполните следующие шаги для создания туннеля SSH к серверу MySQL с PuTTY:
Запустите Putty и введите IP-адрес сервера в поле Host name (or IP address) :
Вывод
MySQL, самый популярный сервер баз данных с открытым исходным кодом, прослушивает входящие соединения только на локальном хосте. Создание туннеля SSH позволяет безопасно подключаться к удаленному серверу MySQL с локального клиента.
Как использовать туннель vpn на вашем телефоне Android
Вам нужен отслеживаемый, зашифрованный просмотр на Android? Узнайте, как использовать TunnelBear VPN на вашем телефоне Android. Это бесплатно и достойно.
Узнайте, как подключиться к FTP-серверу в Mac прямо из Finder через Macfusion.
Как передать файлы с помощью rsync через ssh
С rsync вы можете передавать файлы и каталоги по SSH с и на удаленные серверы. В этом уроке мы объясним, как копировать файлы с помощью rsync через SSH.
Удаленное подключение к MySQL
По умолчанию подключиться к MySQL можно только с того же хоста. Чтобы получить доступ к серверу с другого IP-адреса, нужно настроить удалённое подключение.
ISPmanager5 — Службы — MySQL/MariaDB — Рестарт или в консоли сервера:
Создание удалённого подключения в ISPmanager 6
Также следует добавить/изменить:
Пустое поле списка IP-адресов делает возможным подключение с любого IP.
Создание удалённого подключения в консоли
Также следует добавить/изменить:
Подключитесь к сервер MySQL суперпользователем:
Далее создайте пользователя, например, dbuser (если вместо % указать localhost, авторизация будет возможна только с текущего сервера):
Можно проверить, что мы создали, командой, выводящей всех пользователей с их хостом и паролем:
Создайте базу, например, testdb :
Предоставление прав пользователю
Права, назначенные пользователю, определяют, какие действия он сможет выполнять с базой данных. Можно назначать несколько привилегий одному пользователю.
Наиболее часто назначаемые права:
Назначить привилегии пользователю можно, используя синтаксис:
где permission — вид предоставляемой привилегии.
Например, установите полные права на базу testdb пользователю dbuser :
Предоставить права на вставку:
Предоставить несколько привилегий пользователю:
Можно ограничить права пользователя на добавление данных в определенной базе, указав её перед точкой. Для ограничения прав на доступ к определенной таблице укажите нужную таблицу после точки:
Отозвать все привилегии пользователя:
Посмотреть текущие привилегии пользователя:
После завершения настройки прав необходимо перезагрузить привилегии:
Как подключиться к базе данных через SSH-туннель?
Если вы хотите подключаться удаленно к БД, расположенной на хостинге, и при этом серьезно заботитесь о безопасности своих данных, то для подключения можно использовать SSH-туннель. В этом случае, как и при любом SSH-соединении, весь трафик между вами и базой данных будет шифроваться.
Для того, чтобы соединиться с БД через SSH-туннель, вам нужно подключить услугу «Поддержка SSH», указать свой текущий IP в контрольной панели в разделе «Хостинг / Управление / Настройки SSH» (это нужно делать каждый раз перед подключением; указывать IP в разделе «Хостинг / Управление / Управление MySQL / Доступ по IP» не обязательно) и скачать и настроить специальную программу — PuTTY:
Скачайте и запустите программу (она не требует установки).
Создайте новую сессию подключения. Для этого в поле «Host Name» укажите один из ваших доменов, в поле «Saved Sessions» введите произвольное имя сессии и нажмите кнопку «Save».
В списке «Category» слева выберите пункт «Connection / Data». В поле «Auto-login username» укажите свой логин на хостинге «Джино».
Перейдите в раздел «Connection / SSH / Tunnels». В поле «Source Port» введите «3306», в поле «Destination» — «127.0.0.1:3306» и нажмите кнопку «Add».
Вернитесь в раздел «Sessions», кликнув по соответствующему пункту в списке «Category» слева и снова нажмите кнопку «Save».
Нажмите кнопку «Open» для подключения. Сервер спросит пароль — введите тот же, который вы используете для входа в контрольную панель своего аккаунта. Если вы все сделали правильно, в черном окошке на экране должно появиться приглашение сервера.
Затем запустите программу, с помощью которой вы хотите работать с БД и в ее настройках соединения используйте «127.0.0.1» в качестве имени сервера базы данных.