Чем подключиться к mysql

Чем подключиться к mysql

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

Простое подключение

Для настройки простого подключения к MySQL извне зайдите в Панель управления и перейдите в раздел «Базы данных MySQL».

Нажмите кнопки «Доступ по IP» → «Добавить IP» и укажите IP-адрес, с которым вы выходите в сеть. Узнать свой IP-адрес можно на сайте inet.from.sh.

В форме можно указывать в том числе и IP-адреса с символом % в октетах. К примеру, для разграничения доступа с IP-адресов одной подсети:

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

  • сервер для подключения: имя вашего домена, например yourdomain.ru;
  • порт для подключения: 3306;
  • имя пользователя и пароль: установленные вами при создании базы данных имя пользователя и пароль.

Пример подключения с помощью программы mysql (пароль будет запрошен при подключении):

mysql -P 3306 -h yourdomain.ru -u mylogin_user -p mylogin_db

Безопасное подключение через SSH-туннель

В целях обеспечения безопасности ваших данных используйте подключение к базам данных MySQL через SSH-туннель. Данные передаются по SSH-туннелю в зашифрованном виде, что исключает возможность их перехвата.

Подключение к БД MySQL с компьютера под управлением ОС MS Windows

Настройка SSH-туннеля

Установите на ваш компьютер программу putty. Это бесплатное программное обеспечение, скачать ее можно на официальном сайте.

В категории настроек «Session» в поле «Имя хоста» (Host Name) укажите домен вашего сайта.

Перейдите в категорию настроек Connection → SSH → Tunnels и в поле "Source port" укажите значение 3306, в поле "Destination" — localhost:3306.

После этого нажмите кнопку «Add».

После этого нажмите кнопку «Open». Установится соединение с вашим хостом.

В качестве логина и пароля используйте ваши данные для входа в Панель управления хостингом.

Туннель установлен. Для соединения с базой данных используйте имя пользователя и пароль, заданные вами при создании базы данных в разделе Панели управления «Базы данных». В качестве адреса сервера используйте 127.0.0.1, порт для подключения 3306.

Пример подключения с помощью программы mysql (пароль будет запрошен при подключении):

mysql -P 3306 -h 127.0.0.1 -u mylogin_user -p mylogin_db

Внимание: если на вашем компьютере уже работает сервер баз данных MySQL, подключение удаленному серверу по порту 3306 будет невозможно. В этом случае при создании подключения в putty укажите другой порт в качестве "Source port", например, 3307. Используйте этот порт при подключении к базе данных.

Читайте также:  Красная рамка вокруг экрана андроид

Подключение к БД MySQL с компьютера под управлением ОС Linux

В командной строке выполните следующую команду:

ssh -L3306:localhost:3306 -n yourlogin@yourdomain.ru

  • 3306 (сразу после ключа -L) — порт на локальном компьютере, к которому вы сможете подключаться клиентом mysql;
  • yourlogin — имя вашего аккаунта (логин в Панели управления);
  • yourdomain.ru — имя вашего сайта.

В качестве пароля используйте пароль для входа в Панель управления хостингом.

Туннель установлен. Для соединения с базой данных используйте имя пользователя и пароль, заданные вами при создании базы данных в разделе Панели управления «Базы данных». В качестве адреса сервера используйте 127.0.0.1, порт для подключения 3306.

Пример подключения с помощью программы mysql (пароль будет запрошен при подключении):

mysql -P 3306 -h 127.0.0.1 -u mylogin_user -p mylogin_db

Внимание: если на вашем компьютере уже работает сервер баз данных MySQL, подключение удаленному серверу по порту 3306 будет невозможно. В этом случае при запуске ssh сразу после ключа -L укажите альтернативный порт, например, 3307. Используйте этот порт при подключении к базе данных.

Проверка соединения с БД MySQL

Проверить соединение с БД можно посредством утилиты telnet. Войдите в интерфейс командной строки (в ОС MS Windows: Пуск → Выполнить → cmd.exe), наберите команду:

telnet 127.0.0.1 3306

Если соединение установлено, процедуру настройки туннеля можно считать завершенной. В противном случае необходимо тщательно проверить настройки, убедиться в отсутствии сетевых проблем и связаться со службой технической поддержки.

После того, как Вы установили сервер MySQL, подключиться к нему Вы можете только с этой же машины. Сделано это в целях безопасности системы, так как в большинстве случаев MySQL используется в Web, а там в редких случаях разносят web-сервер и сервер баз данных.

В корпоративном же сегменте правильнее использовать 1 сервер под все похожие задачи. Глупо держать MySQL с одной базой данных на каждом сервере, где он может потребоваться. Поэтому сервер баз данных должен быть один, на котором заведено нужное количество баз данных под разные задачи.

Кстати, в Web`е разносят сервер базы данных и web-сервер только в тех случаях, когда мощности одного сервера не хватает. Арендуется выделенный сервер и выноситься на него база данных. Хотелось бы уточнить, что делать это разумно только в пределах одного ДЦ.

Разрешаем подключаться к MySQL удаленно

В конфигурационном файле самого MySQL есть параметр bind-address, который отвечает за это, поэтому:

  1. открываем конфигурационный файл для редактирования:
  2. комментируем строку:
  3. перезапускаем MySQL:
Читайте также:  Зарядка аккумулятора от лабораторного блока питания

Закомментировать эту строку равносильно тому, что присвоить IP-адрес 0.0.0.0, то есть разрешить подключаться всем. Указать 2 IP-адреса в этой строчке нельзя. Если нужно ограничить подключение к серверу MySQL, нужно использовать возможности iptables.

Теперь через telnet-клиент Вы можете подключиться к серверу базы данных, но для того, чтобы зайти внутрь нужна учетная запись, которой разрешено подключаться не только с localhost. Для этого нужно подключиться к MySQL с самого сервера и создать такого пользователя:

И командой создаем пользователя:

Эта строчка создает пользователя с неограниченными правами, что делать не совсем правильно. Правильнее максимально ограничить доступ пользователя, который подключается удаленно. Поэтому команда может выглядеть так:

Этой командой мы ограничили полномочия пользователя только одной базой данных и действиями с ней.

Полный список всех прав, которые можно указать пользователю:

  • ALL PRIVILEGES – все права на указанный объект за исключением назначения прав на этот объект;
  • CREATE – право на создание таблицы;
  • ALTER – право на изменение таблицы;
  • DROP – право на уничтожение таблицы;
  • LOCK TABLES – право на блокировку таблицы;
  • CREATE TEMPORARY TABLES – право на создание временных таблиц;
  • CREATE ROUTINE – право на создание хранимых процедур и функций;
  • ALTER ROUTINE – право на изменение или уничтожение хранимых процедур и функций;
  • CREATE VIEW – право на создание представления;
  • TRIGGER – право на создание и уничтожение триггеров;
  • INDEX – права на создание и уничтожение индексов;
  • EXECUTE – право на выполнения хранимых процедур и функций;
  • EVENT – право на создание событий;
  • CREATE USER – права на создание, уничтожение, переименование пользователя и снятия все прав. Назначается только на глобальном уровне;
  • SELECT – право на выборку;
  • DELETE – право на удаление;
  • INSERT – право на вставку;
  • UPDATE – право на обновление;
  • FILE – право на использование команд SELECT … INTO OUTFILE и LOAD DATA INFILE ;
  • PROCESS – право на просмотр всех процессов командой SHOW PROCESSLIST ;
  • SHOW DATABASES – право на просмотр списка схем;
  • SHOW VIEW – право на просмотр списка представлений;
  • SHUTDOWN – право на закрытие.
  1. Nird#
    8 Декабрь, 14:10

А не проще iptables’ом форвардить пакеты на порт к другой машине. Более того, необходимо огранччить количество запросов в минуту.и настройить fail2ban на авторизацию в мускуль. Иначе забрутят мускуль и привет.

Читайте также:  Что такое собственный цод

Вообще-то из покон веков MySQL вешают на локалхост онли и подключаются к нему через SSH тунель с пробросом 8080 в обе стороны.

Отличная статья, спасибо. Обязательно будем использовать данный кейс.

А что мешает подключаться по ssh До сервера и с него уже юзать MySQL

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

Производим изначальную конфигурацию в автоматическом режиме

При этом разрешаем удаленное подключение от имени пользователя root (необходимо только при удаленном подключении от имени пользователя root)

Disallow root login remotely? no

Также потребуется внести коррективы в основной конфигурационный файл MySQL /etc/mysql/my.cnf

Параметр bind следует закомментировать. Если необходимо ограничить доступ к MySQL извне — использовать iptables

Чтобы конфигурационный файл считался — перезапускаем сервис

Авторизуемся в MySQL

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

GRANT ALL ON *.* TO testuser@’123.123.123.124′ IDENTIFIED BY ‘secretpassword’;

Здесь указываем ip адрес основного сервера, с которого работает веб-проект. Если подключение производится с нескольких серверов — команду можно повторять несколько раз.

Проверяем наличие существующих баз данных и пользователей MySQL (должны увидеть данные пользователя testuser)

Настройки на основном сервере проекта

Авторизуемся на основном сервере

Создаем локального пользователя

CREATE USER ‘testuser’@’localhost’ IDENTIFIED BY ‘secretpassword’;

Выполняем команду nmap, убеждаемся в том, что порт на сервере баз данных открыт

Авторизуемся с реквизитами пользователя testuser в MySQL удаленно указывая IP адрес сервера баз данных

mysql -u testuser -h 123.123.123.123 -p

Если никаких ошибок при авторизации не появляется — все сделано верно, пробуем пробуем создать базу данных.

Возможные проблемы с установкой удаленного подключения к MySQL и их решение

В случае если имеют место какие-либо трудности при подключении — проверяем iptables на предмет наличия запрещающих правил:

Если запрещающие правила обнаружены — их следует удалить.

Также можно добавить разрешающее правило — на основном сервере синтаксис команды будет следующим:

/sbin/iptables -A INPUT -i eth0 -p tcp —destination-port 3306 -j ACCEPT

Из соображений безопасности можно не предоставлять все права пользователю удаленного сервера выдать только права на SELECT,INSERT,UPDATE или DELETE. В примере пользователю выдали права на все базы данных, без каких либо трудностей права можно выдать на конкретную БД или таблицу БД.

Читайте также про отказоустойчивые кластеры Master-Slave MySQL и Galera Cluster

Ссылка на основную публикацию
Хороший принтер для школьника
Для ученика возможность распечатывать доклады, рефераты и иллюстрации для занятий в школе - совсем не лишняя. Школьнику в XXI веке...
Файл с расширением dav чем открыть
Файл формата DAV открывается специальными программами. Чтобы открыть данный формат, скачайте одну из предложенных программ. Чем открыть файл в формате...
Файл подкачки windows 7 на флешку
В прошлой статье рассказано, как определиться с оптимальным размером файла подкачки, что делать с SSD-дисками и как установить размер файла...
Хороший телефон с aliexpress
Обновлено 22.10.2019 На Алиэкспресс есть много разных производителей смартфонов. Даже есть такие международные бренды, как Apple. В этой подборке мы...
Adblock detector