20 декабря 2022
По умолчанию сервер MySQL разрешает только локальные подключения, то есть выполняемые с сервера, на котором он работает.
Если же требуется подключаться к MySQL извне, со сторонних адресов, необходимо выполнить следующее:
Работать с удаленной базой данных можно с криптографической защитой данных или без нее. Это зависит от задачи, которую предстоит решать. Соединение возможно как вручную из операционок Linux и Windows, так и автоматически при наличии в приложении соответствующего кода. Вопрос, как подключиться к локальному серверу MySQL, имеет то же решение. Отличие составляет лишь адрес, который понадобится указать в командах.
Время на прочтение
Материал статьи предназначен для начинающих, профессионалы Хабра в большинстве не нуждаются в изложении этого вопроса. Тем не менее, те, кто делает первые шаги в работе с MySQL часто задают подобные вопросы. Статья написан для тех, кто впервые столкнулся с необходимостью установить удаленное соединение с базой данных MySQL. В статье рассказывается о сложностях, которые могут возникнуть при настройке удаленного соединения и о методах их преодоления.
Подключение к удаленной базе данных MySQL позволяет работать с ее содержимым аналогично локальным БД. Такой подход позволяет редактировать, считывать информацию через интернет с любого компьютера независимо от расположения пользователя.
В этом материале мы рассмотрим, как подключиться к MySQL несколькими способами. В качестве тестовой базы можно применять облачные базы данных провайдера Timeweb Cloud. Запуск БД там займет пару минут.
Удаленное подключение к MySQL может ограничиваться настройками файрвола. Например, на сервере с Bitrix 7 такое подключение вероятнее всего будет недоступно из-за ограничений iptables. Потребуется дополнительно внести изменения в правила — открыть порт 3306.
Можно открыть доступ к нему с любого адреса, но такая настройка является небезопасной. Рекомендуется разрешать доступ для конкретного IP.
iptables это можно сделать командой:
sudo iptables -A INPUT -s 123.45.67.8 -p tcp —destination-port 3306 -j ACCEPT
Замените адрес из примера на нужный вам.
Если на сервере используется UFW, настройку можно выполнить с помощью:
sudo ufw allow from 123.45.67.8 to any port 3306
После завершения настройки проверьте, что пользователь может подключиться к MySQL удаленно.
mysql -u имя_пользователя -h адрес_хоста_mysql -p
Многие компании создают различные многофункциональные приложения для облегчения управления, разработки и администрирования баз данных.
Большинство реляционных баз данных, за исключением MS Access, состоят из двух отдельных компонентов: «back-end», где хранятся данные и «front-end» — пользовательский интерфейс для взаимодействия с данными. Этот тип конструкции достаточно умный, так как он распараллеливает двухуровневую модель программирования, которая отделяет слой данных от пользовательского интерфейса и позволяет сконцентрировать рынок ПО непосредственно на улучшении своих продуктов. Эта модель открывает двери для третьих сторон, которые создают свои приложения для взаимодействия с различными базами данных.
В Интернете каждый может найти много продуктов для разработки и администрирования баз данных MySQL. Мы решили собрать 10 самых популярных инструментов в одной статье, чтобы вы смогли сэкономить свое время.
- Workbench
- Navicat
- PHPMyAdmin
- HeidiSQL
- SQL Maestro для MySQL
- EMS SQL Manager для MySQL
- SQLyog
- DBTools Manager
- MyDB Studio
- Подключение удалённого сервера и синхронизация с ним
- Экспорт модели MySQL Workbench в SQL дамп
- Создание удалённого подключения к серверу MySQL
- Через удалённого пользователя MySQL (Standard
- Через SSH туннель (TCP/IP over SSH)
- Синхронизация структуры данных
- Выгрузка на сервер схемы и стартовых данных
- Управление сервером, создание и восстановление бэкапов
- Вместо заключения (о некоторых подводных камнях)
- Программа периодически подвисает или «падает»
- Конец
- С помощью phpMyAdmin
- Шаг 1. Редактирование конфигурационного файла
- Сколько подключений к БД доступно
- Подключение из разных операционных систем
- Возникающие сложности
- С помощью SSH
- Windows
- Linux
- Как подключиться к удаленному серверу и работать с базами данных
- Шаг 2. Создание пользователя MySQL
- Через phpMyAdmin
- Способы, доступные пользователю
- Как установить соединение с удаленной базой?
- Установка и настройка программного обеспечения для подключения к серверу
- PuTTY (для Windows)
- OpenSSH (для Linux и macOS)
- Работа с базами данных
- Использование командной строки
Workbench
Первое место, по праву принадлежит инструменту Workbench (разработка компании Sun Systems/Oracle), который может работать на платформах Microsoft Windows, Mac OS X и Linux. Workbench объединяет в себе разработку и администрирование баз данных и является преемником DBDesigner4.
MySQL Workbench распространяется под свободной лицензией — Community Edition и с ежегодной оплачиваемой подпиской — Standard Edition. Последняя включает в себя дополнительные возможности, которые способны существенно улучшить производительность, как разработчиков, так и администраторов баз данных.
Стоимость — бесплатно.
Что делает Workbench популярным?
Navicat
Второе место занимает Navicat (разработка компании PremiumSoft CyberTech Ltd) — инструмент для разработки и администрирования баз данных, который работает на любом сервере MySQL, начиная с версии 3.21. Для MySQL, Navicat доступен для работы на платформах Microsoft Windows, Mac OS X и Linux.
Подробнее о Navicat вы можете узнать здесь www.navicat.com/en/products/navicat_mysql/mysql_overview.html
Стоимость продукта варьируется от 199 до 379 долл. С ША.
Что делает Navicat популярным?
PHPMyAdmin
dbForge Studio for MySQL — инструмент, представляющий интерес как для пользователей MySQL, так и для разработчиков БД. С его помощью вы сумеете легко автоматизировать рутинную работу и сэкономить время. Сегодня dbForge Studio for MySQL представлен в трех редакциях: Express, Standard и Professional, что позволяет выбрать тот инструмент, который нужен именно вам. Пользоваться dbForge Studio for MySQL можно как коммерческой, так и бесплатной версией.
Ознакомиться с возможностями dbForge Studio for MySQL вы можете здесь www.devart.com/ru/dbforge/mysql/studio
Существует как бесплатная, так и платная версии, цена последней составляет 49,95 долл. С ША (стандартное издание ) и 99,99 долл. С ША (профессиональное издание).
Что делает dbForge Studio популярным?
HeidiSQL
Что делает HeidiSQL популярным?
SQL Maestro для MySQL
SQL Maestro для MySQL — инструмент для администрирования, разработки и управления наиболее востребованных СУБД. Удобный графический интерфейс дает возможность выполнять SQL запросы и скрипты, управлять привилегиями пользователей, экспортировать и создавать резервные копии данных.
Ознакомиться с возможностями и купить SQL Maestro для MySQL можно здесь www.sqlmaestro.com/products/mysql
В зависимости от выбранной лицензии и варианта использования, стоимость данного инструмента варьируется от 99 до 1949 долл. С ША.
Что делает SQL Maestro для MySQL популярным?
EMS SQL Manager для MySQL
EMS SQL Manager для MySQL — инструмент для разработки и администрирования баз данных, который поддерживает различные функции MySQL и работает со всеми версиями MySQL старше 3.23. С его помощью у вас есть возможность визуально редактировать, импортировать и экспортировать БД, выполнять сценарии SQL, управлять привилегиями пользователей, визуально проектировать базы данных MySQL.
Подробнее ознакомиться и приобрести EMS SQL Manager для MySQL можно здесь www.sqlmanager.net./ru/products/studio/mysql
Существует платная и бесплатная версии приложения. Последняя имеет ряд функциональных ограничений. Стоимость платной версии варьируется в пределах 95 – 245 долл. С ША.
Что делает EMS SQL Manager for MySQLпопулярным?
SQLyog
Подробнее ознакомиться и приобрести SQLyog можно здесь www.webyog.com/en/index.php
Доступна как бесплатная, так и платная версия SQLyog. Стоимость платной версии — от 99 до 1499 долл. С ША (варьируется в зависимости от количества пользователей и лицензии, с поддержкой или без нее).
Что делает SQLyog популярным?
DBTools Manager
DBTools Manager — приложение для управления данными, с встроенной поддержкой MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle и других БД. Поддерживаемые платформы: Windows 2000, XP, Vista, 7.
DBTools Manager представлен в бесплатном (Standard) и платном варианте (Enterprise). Стоимость составляет 69.90 долл. С ША за одну лицензию, при покупке нескольких лицензий предусмотрены скидки.
Подробнее ознакомиться и приобрести DBTools Manager можно здесь www.dbtools.com.br/EN/dbmanagerpro
Что делает DBTools Manager популярным?
MyDB Studio
MyDB Studio — бесплатный инструмент для администрирования БД MySQL, который позволяет создавать, редактировать и удалять записи, таблицы и базы данных. Работает исключительно на платформе Windows.
Что делает MyDB Studio популярным?
Подключение удалённого сервера и синхронизация с ним
В первой части обзора программы MySQL Workbench я показал на примере основные принципы разработки модели данных и создания EER-диаграммы «сущность-связь». Пришло время применить MySQL Workbench в бою, поэтому сегодня я расскажу о создании подключения к удалённому серверу, выгрузке mwb модели на сервер, синхронизации обновлений схемы данных в процессе работы, а так же об управлении MySQL сервером с помощью программы MySQL Workbench.
Экспорт модели MySQL Workbench в SQL дамп
Если требуется записать дамп в файл, указываем путь до файла в поле «Output SQL Script File» (если оставить поле пустым, SQL скрипт можно будет скопировать на последнем шаге в буфер обмена). Мы видим окно настроек экспорта. Настройки стандартные, чтобы понять их суть, достаточно перевести их названия. Поясню только то, что галочка «Generate INSERT Statements for Tables» включает в дамп базовые данные, располагающиеся во вкладке «Inserts» интерфейса редактирования таблиц модели. После нажатия «Next» мы видим список того, что вообще можно экспортировать. Для экспорта таблиц выбираем «Export MySQL Table Objects», а чтобы экспортировать их выборочно, нажимаем «Show Filter» и выбираем нужные нам таблицы:
Нажав «Next» мы увидим в окне готовый SQL скрипт, откуда сможем скопировать его в буфер обмена или же записать в какой-либо файл.
Создание удалённого подключения к серверу MySQL
А вот это уже необходимо для постоянной работы с сервером. Советую не лениться и всегда создавать эти подключения — они дают массу новых возможностей!
Через удалённого пользователя MySQL (Standard
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP»:
Если что-то пошло не так, проверяем, включен ли у нашего пользователя удалённый доступ, а так же наличие ip адреса нашего компьютера в списке разрешённых для данного юзера.
Через SSH туннель (TCP/IP over SSH)
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP over SSH»:
Синхронизация структуры данных
После подключения к серверу и нажатия «Next» мы увидим список моделей (в левой колонке) и баз данных (в правой колонке), доступных для синхронизации:
Выбрав галочкой нужную базу и схему, нажимаем «Next», запуская процедуру сравнения структур удалённой базы данных и нашей модели:
После завершения процедуры мы можем увидеть список различий между нашей схемой данных и удалённой базой:
Тут мы можем настроить объединение таблиц: протолкнуть наши изменения на сервер («Update Source»), втянуть в локальную модель конфигурацию с сервера («Update Model») или игнорировать отличия («Ignore»). При чём, доступен как вариант настройки для всей базы, так и отдельно для каждой таблицы. При выделении одной из таблиц и выборе способа объединения мы можем видеть SQL запросы, которые выполнятся в процессе синхронизации, а нажав «Next» — увидим полный стек этих запросов:
В случае возникновения ошибок их лог отобразится в этом же диалоговом окне. Некоторые из них разобраны в конце этой статьи 😉
Выгрузка на сервер схемы и стартовых данных
Список доступных для редактирования баз данных можно увидеть в левой панельке в разделе «SCHEMAS». Открыв нужную базу данных, можно увидеть список таблиц в ней:
В правой же области мы можем видеть вкладки разных видов, к примеру, на скриншоте выше открыта вкладка составления SQL запроса, в которой есть масса полезных фишек и примочек, помогающих в его редактировании, которыми я, признаться, ни разу не пользовался 🙂 Выполнять запросы можно комбинацией клавиш Ctrl + Enter.
Для просмотра, создания или редактирования записей нажимаем на нужную таблицу правой кнопкой и выбираем «Select Rows — Limit 1000» или выполняем нужный для выборки SQL запрос:
В открывшейся вкладке мы увидим симпатичный и человекопонятный грид, в котором интуитивно и без труда сможем работать с данными. Протолкнуть изменения в базу можно при помощи кнопки «Apply», а отменить — кнопкой «Cancel» в нижней части вкладки редактора.
Управление сервером, создание и восстановление бэкапов
Крутизна, да? 🙂 Можно бэкапить как всю базу, так и по частям. Можно хранить все бэкапы удобно и упорядоченно. Блин, можно всё что хочешь!
Такую красивую статистику просто скушать хочется! Приятно смотреть на такую эффективную эффективность моих ключей и индексов 🙂 А вот над буфером InnoDB нужно подумать.
Вместо заключения (о некоторых подводных камнях)
Вдохновившись, в заключении я хотел написать хвалебный отзыв о том, на сколько же крута MySQL Workbench. Однако уровень её крутизны, думаю, прослеживается на протяжении всего обзора, а вот о некоторых подводных неприятностях, с которыми мне пришлось столкнуться, стоит упомянуть.
Программа периодически подвисает или «падает»
Суть проблемы: некоторая неустойчивость MySQL Workbench прослеживалась у меня на разных компах с разными ОС. Видимо, разработчики о ней тоже знают — в процессе работы изменения записываются в *.bak файл, что не раз выручало меня после «падения».
Решение: почаще сохраняться 😉 Так же практика показывает, что лучше не тыкать беспорядочно на всё подряд, а перед следующим действием ожидать завершения предыдущего.
Суть проблемы: чаще всего такая ошибка возникает при попытке синхронизации с таблицей, в которой есть запись со значением ‘0000-00-00’ или ‘0000-00-00 00:00:00’ в полях типа DATE или DATETIME соответственно. В некоторых случаях настройки MySQL позволяют создавать такие записи, но не позволяют редактировать схему таблицы.
Решение: вообще, при синхронизации или экспорте данных MySQL Workbench добавляет специальные запросы, как бы оборачивая основной SQL код:
Вчитавшись в этот код, начинаешь думать, что программа пытается решить эту проблему самостоятельно. Парадокс в том, что для решения проблемы эти строки нужно удалить:
Суть проблемы: обычно эта ошибка касается неправильной настройки внешних ключей (вкладка «Foreign Keys» в настройках таблиц). У меня она возникала в том случае, если я делал ключом поле с меткой NOT NULL, а в поведении внешнего ключа указывал SET NULL — это абсурд, ведь InnoDB не сможет установить значение NULL в поле, где такое значение запрещено.
Решение: внимательно следим за настройкой поведения внешних ключей. Если необходимо поведение SET NULL, у поля-ключа в дочерней таблице не должен стоять флаг NOT NULL.
Суть проблемы: независимо от настроек таблицы, все поля в «Inserts» имеют по умолчанию значение NULL, даже если такое значение не разрешено для данного поля. Соответственно, при выгрузке на сервер может возникнуть ошибка.
Решение: при добавлении стартовых данных следим за тем, чтобы значение NULL оставалось лишь в тех полях, где это разрешено. Если нужно сделать поле пустой строкой, делаем финт ушами: ставим в него курсор, нажимаем пробел, затем стираем его (во всяком случае, я не придумал ничего получше на такой случай :)).
Суть проблемы: говорят, что может быть несколько причин. Я встечал такую ошибку в случае, если в файле my.cnf была установлена настройка «skip-networking» — по сути она не даёт MySQL работать с сетью.
Решение: закомментировать данную опцию:
Конец
Итак, мой обзор программы MySQL Workbench в двух частях (кстати, первую часть можно найти тут) подходит к концу. Буду рад, если читатель почерпнет для себя в нём что-то полезное или интересное 🙂
С помощью phpMyAdmin
Изображение от Freepik
Веб-интерфейс поможет разобраться в работе с СУБД даже начинающим системным сисадминам и разработчикам: чтобы настроить нужную функцию, достаточно зайти в раздел с соответствующим ей названием и выбрать из списка подходящие параметры. Например, найти данные можно с помощью пункта «Поиск».
Шаг 1. Выберите существующую базу данных или создайте новую. После авторизации в админке необходимо открыть раздел меню «Основное» и перейти в пункт «Базы данных». Выберите нужную БД из появившегося списка. При создании новой базы не забудьте разрешить к ней удаленный доступ.
Шаг 1. Редактирование конфигурационного файла
В Ubuntu файл размещается, как правило, по пути /etc/mysql/mysql.conf.d/mysqld.cnf
В CentOS это могут быть /etc/mysql/my.cnf/etc/my.cnf
Откройте файл для редактирования, указав нужный путь:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Найдите в нем следующие строки:
# Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address = 127.0.0.1
Параметр bind-address определяет, с каких адресов MySQL разрешает подключения. В данном случае оно возможно только с локального сервера (localhost, 127.0.0.1).
Укажите здесь нужные вам настройки:
После перезапустите MySQL:
sudo systemctl restart mysql
Сколько подключений к БД доступно
Количество одновременно работающих с базой данных пользователей или приложений ограничено объемом оперативной памяти, выделенной на работу нод конкретного кластера. Все, что требуется от пользователя, это изменить тариф на , масштабировать его под свои требования.
Подключение из разных операционных систем
как подключиться к базе данных MySQL из разных операционных систем. Выглядеть команды будут так:
Возникающие сложности
Если после всех действий у вас возникает ошибка
(Can’t connect to Mysql Server on ‘ваш IP'(10061)),
значит соединение блокирует firewall (windows firewall, outpost, антивирус или еще что-то).
Кросспост Настройка удаленного подключения к MySQL с Webew.
С помощью SSH
Подключение к серверу с MySQL по SSH начинающие разработчики выбирают редко, так как в этом случае отсутствует графический интерфейс, а управление БД осуществляется с помощью командной строки операционной системы. Однако такое решение имеет свои преимущества — подключение защищено шифрованием, а значит, передаваемые данные нельзя перехватить, и доступно больше функций для работы с информацией. Разбираемся, как подключиться к базе данных MySQL с помощью SSH в ОС Windows и дистрибутивах Linux.
Windows
Шаг 1. Настройки Session. В поле Host Name необходимо указать ftp.доменное_имя, Port — 22, Connection type — SSH.
Шаг 2. Настройки Connection. Выберите тип соединения с сервером SSH, Telnet. Перейдите к заполнению полей: Source port — 3306 (порт для локального доступа после установки туннеля), Destination — localhost:3306 (хост, к которому подключаются по заданному порту) и Local (локальное подключение). Forwarded port заполнится автоматически после нажатия кнопки Add.
Linux
В дистрибутивах Линукс удаленное подключение к MySQL создается с помощью командной строки — Терминала. Последовательность команд:
Как подключиться к удаленному серверу и работать с базами данных
Узнайте, как подключиться к удаленному серверу и работать с базами данных, используя популярные инструменты и протоколы в этой информативной статье
В данной статье мы разберем, как подключиться к удаленному серверу и работать с базами данных. Этот процесс состоит из двух основных шагов: установка и настройка программного обеспечения для подключения к серверу и использование инструментов для работы с базами данных.
Шаг 2. Создание пользователя MySQL
Подключитесь к MySQL:
С помощью команд ниже создайте пользователя и выдайте ему необходимые привилегии. В примере используется ALL PRIVILEGES, но в зависимости от ваших задач вы можете выдавать только отдельные права доступа (например, CREATE, INSERT, UPDATE и т.д.).
Для того, чтобы создаваемый пользователь мог подключаться к конкретной базе с любого адреса, используйте команду:
Если нужно, чтобы пользователь мог подключаться только с определенного адреса, укажите его вместо %, например:
С помощью следующей команды можно разрешить пользователю подключение ко всем базам вместо одной конкретной:
Через phpMyAdmin
В пункте «Имя хоста» выберите «Любой хост» и укажите либо %, чтобы разрешить подключение с любого адреса, либо конкретный IP.
На следующем шаге задайте нужные привилегии для пользователя. Это может быть полный набор прав или с определенными ограничениями (например, вы можете запретить новой учетной записи удалять таблицы базы данных; таким образом удаление будет возможно только при локальном подключении).
Способы, доступные пользователю
Существует несколько вариантов коннекта, какой именно выбрать, решать вам:
Во всех перечисленных способах возможно подключение по защищенному каналу благодаря SSL-сертификату.
Как установить соединение с удаленной базой?
Для установления удаленного соединения нужно указать параметры, характеризующие устанавливаемое подключение. Это
Из четырех возможных протоколов удаленное подключение позволяет только TCP/IP, поэтому первым требованием является доступность компьютера из сети по TCP/IP.
Далее необходимо добавить имя хоста (или ip адрес машины, на которой расположена база) в строке подключения:
mysql —host=host_name
Обратите внимание, что указание в качестве имени хоста значения localhost (или же отсутствие такого параметра, что то же самое, так как это дефолтное значение) приводит к обращению на локальную машину.
Учтите, что параметры имеют две формы записи: длинную и короткую. В свою очередь, если параметр имеет значение (как например, в случае хоста необходимо указать имя хоста к которому нужно подключиться), то короткая форма записи может использоваться с пробелом или без (исключением из этого правила является пароль).
Таким образом, следующие три записи являются эквивалентными:
Установка и настройка программного обеспечения для подключения к серверу
Для подключения к удаленному серверу вам потребуется специальное программное обеспечение. Рассмотрим два наиболее популярных варианта:
PuTTY (для Windows)
PuTTY — это бесплатное и простое в использовании программное обеспечение для подключения к серверам по протоколу SSH.
OpenSSH (для Linux и macOS)
OpenSSH — это набор инструментов для работы с протоколом SSH, встроенный в большинство дистрибутивов Linux и macOS.
🎉 Теперь вы подключены к удаленному серверу!
Веб-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT
Получить
программу
Работа с базами данных
После подключения к серверу вы можете использовать различные инструменты для работы с базами данных. Рассмотрим два основных варианта:
Использование командной строки
Для работы с базами данных можно использовать командную строку и инструменты, такие как mysql для MySQL и psql для PostgreSQL.
Пример подключения к базе данных MySQL:
Пример подключения к базе данных PostgreSQL:
Вам потребуется ввести пароль для подключения к базе данных.
💡 Не забудьте изучать документацию и примеры использования конкретных инструментов для работы с базами данных, чтобы получить максимальную отдачу от их возможностей.
Теперь вы знаете, как подключиться к удаленному серверу и работать с базами данных. Продолжайте изучать веб-разработку и удачи вам в этом увлекательном мире! 🚀