Введение в MySQL
MySQL представляет систему управления реляционными базами данных (СУБД). На сегодняшний день это одна из самых популярных систем управления базами данных.
Изначальным разработчиком данной СУБД была шведская компания MySQL AB. В 1995 году она выпустила первый релиз MySQL. В 2008 году компания MySQL AB была куплена компанией Sun Microsystems, а в 2010 году уже компания Oracle поглотила Sun и тем самым приобрела права на торговую марку MySQL. Поэтому MySQL на сегодняшний день развивается под эгидой Oracle.
Текущей актуальной версией СУДБ является версия 8.0, которая вышла в январе 2018 года, но для которой постоянно выходят подверсии.
MySQL обладает кроссплатформенностью, имеются дистрибутивы под самые различные ОС, в том числе наиболее популярные версии Linux, Windows, MacOS.
Установка MySQL
Для установки MySQL загрузим дистрибутив по адресу http://dev.mysql.com/downloads/mysql/ и выберем нужную версию.

После выбора версии нажмем на кнопку «Go to Download Page», и нас перенаправит на страницу загрузки дистрибутива. Здесь можно выбрать либо онлайн-загрузчик, либо полный пакет инсталятора. Можно выбрать любой:

Дальше может быть предложено залогиниться с помощью учетной записи Oracle. Можно пропустить всю эту байду и без какого-либо логина нажать на ссылку «No thanks, just start my download.», и начнется загрузка:

Сначала будет предложено выбрать тип установки. Выберем тип Developer Default , которого вполне хватит для базовых нужд, и нажмем на кнопку Next:

Затем на этапе установки инсталлятор отобразит весь список устанавливаемых компонентов. У меня он выглядит так:

Чтобы выполнить установку всех компонентов, нажмем кнопку Execute.
После того, как все компоненты будут установлены, нажмем кнопку Next.

Далее отобразится окно с перечнем продуктов, готовых к конфигурации

Нажмем на кнопку Next и далее будет предложено установить ряд конфигурационных настроек сервера MySQL. В частности, здесь мы видим, что для подключения будет применяться протокол TCP/IP и порт 3306. Оставим все эти настройки соединения и порта по умолчанию:

На следующем шаге будет предложено установить метод аутентификации. Оставим настройки по умолчанию:

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

Следующий набор конфигураций, который также оставим по умолчанию, указывает, что сервер будет запускаться в качестве службы Windows при запуске операционной системы:

И на следующем экране необходимо применить все ранее установленные конфигурационные настройки, нажав на кнопку Execute:

После применения конфигурационных настроек сервер MySQL будет полностью установлен и сконфигурирован, нажмем на кнопку «Finish».
Далее опять отобразится окно с перечнем продуктов, готовых к конфигурации. Нажмем на кнопку «Next»

И нам будет предложено установить конфигурацию для второго продукта — MySQL Router :

Ничего не будем менять, оставив все настройки по умолчанию, и нажмем на кнопку «Finish».
Далее опять отобразится окно с перечнем продуктов, готовых к конфигурации. Нажмем на кнопку «Next»

И далее нам будет предложено установить конфигурацию для третьего родукта — Samples and Examples (Примеры работы с MySQL). В частности, надо будет указать экземпляр сервера MySQL для получения примеров для работы с MySql. Установленный экземпляр будет автоматически отмечен в списке. Кроме того, предлагает протестировать подключения. В поле Password введем ранее указанный пароль и нажмем на кнопку Check :

При успешном подлючении к MySQL отобразится выделенная зеленым цветом надпись Connection succeeded . Нажмем на кнопку Next.
И на последнем окне необходимо будет применить конфигурацию для

Далее мы опять увидим окно с перечнем установленных и сконфигурированных продуктов. И нажмем на кнопку Next.

На последнем экране мы увидим два отмеченных поля: Start MySQL Workbench after setup и Start MySQL Shell after setup . Эти поля позволяют запустить графический и консольный клиенты для управления сервером MySQL. Снимем отметки с этих полей, поскольку пока мы не собираемся запускать соответствующие программы.

И нажмем на кнопку Finish. Все! MySQL полностью установлен, сконфигурирован и запущен. И мы сможем с ним работать.
Что такое MySQL-сервер

Поначалу околосерверная терминология многих вводит в ступор. С ходу непонятно, что из представленного набора букв — технология, а что является названием какой-нибудь утилиты. Хороший пример – MySQL. Инструмент, который кто-то считает нарицательным для баз данных, а кто-то называет сервером.
Разберемся, что такое MySQL-сервер, как он работает и почему о нем так много говорят.
Краткое описание MySQL
Это реляционная система управления базами данных. Таково официальное определение.
MySQL создавалась силами шведских разработчиков из одноименной компании в 1994 году. Тогда и состоялся ее релиз под свободной лицензией. Позже компанию поглотила Oracle. MySQL распространяется бесплатно и входит в стандартный набор утилит LAMP для разработки сайтов на базе Linux.
MySQL — не единственная в своем роде. Подобных программ хватает. Но системы управления базами данных частенько ассоциируют конкретно со шведской разработкой. Доходит до того, что серверы баз данных с любым ПО называют MySQL. Все благодаря ее популярности и признанности среди крупных корпораций. Ее используют в Facebook, YouTube, Google и тысячах других IT-компаний.
MySQL — это популярная СУБД с моделью « клиент-сервер » . Поэтому часто можно услышать от других разработчиков словосочетание «MySQL-сервер». Это действительно сервер, только сервер базы данных. Он создан для обеспечения доступа к данным для других сервисов и приложений.
Что такое база данных?
В нашем случае данные — это файлы, а база — место, где они хранятся. Данные могут принимать любой облик.
Представьте, что вы сделали плейлист в Spotify и добавили туда новый трек. Плейлист будет базой, а добавленная песня — данными. Каждая композиция, появившаяся в уже готовом плейлисте, станет частью существующей базы данных. Так она будет пополняться.
Таких баз может быть много. Например, интернет-магазин, продающий гитары, тоже оперирует базами данных. В них хранятся инструменты из каталога, отсортированные по заранее продуманным критериям (производитель, количество струн и т.п.).
Получается, что базы могут быть многоуровневыми и делиться на различные категории (разделы каталога в случае с магазином). Так формируются взаимосвязи между разными элементами базы данных, появляется структура. Отсюда и термин «реляционная» – он намекает на зависимость элементов друг от друга.
Так что база данных — это набор структурированных данных с выстроенными между ними «взаимоотношениями» (делением на категории, к примеру).
Визуально она представляет собой таблицу с тысячами элементов (ссылками, файлами, отрывками текста и т.п.). Чтобы этим добром управлять, необходимо как-то обозначить таблицы и научиться ими управлять. Тут и пригодится SQL.

А что такое SQL?
Эта аббревиатура расшифровывается как Structured Query Language, что в переводе означает «язык структурированных запросов».

По версии разработчиков, приставка My в MySQL появилась из-за дочери создателя системы Микаэля Видениуса. Ее зовут Мю, в финском языке это пишется как My. Не зная этого факта, на западе произносили [мю] как [май].
SQL – э то стандартизированный язык, использующийся для взаимодействия с базой данных. С помощью него, собственно, и получают доступ к информации, хранящейся в таблицах MySQL. Язык делится на три части:
- Синтаксис, помогающий решать семантические вопросы языка. То есть идентифицировать отдельные компоненты базы данных.
- Синтаксис для управления данными в базе, который помогает обновлять и искать информацию.
- Синтаксис, позволяющий выдавать пользователям права на отдельные единицы данных в базе.
Другие СУБД используют такой же язык структурированных запросов. Будь то PostgreSQL или Microsoft SQL. Это бренд. Но это не касается того, как эти системы взаимодействуют с данными. Отличия все же есть.
Основные задачи, выполняемые SQL
Structured Query Language появился в 1970 году и быстро заменил собой аналогичные, но устаревшие VISAM и ISAM. Они были нужны для управления данными.
В их «обязанности» входило:
- Извлечение запрашиваемой информации из ячеек базы данных по запросу клиента.
- Разного рода манипуляции с данными, включая добавление новых элементов в таблицу, удаление, изменение существующей в базе информации и ее сортировку. Сюда же относят и некоторые другие редко используемые операции.
- Идентификация данных из базы. Я уже упомянул это выше. Речь идет об определении отдельных компонентов. К примеру, идентификации чисел в тексте как целых чисел для соответствующей их обработки. Также процесс идентификации необходим реляционной сущности MySQL для определения взаимоотношений между разными слоями таблиц в базе данных.
- Управление данными.
- Защита и шифрования информации в таблицах.
SQL закрывает все 5 аспектов.
Принцип работы MySQL-серверов
Он такой же, как в любых клиент-серверных моделях. Одно устройство делает запрос, а второе отвечает. Запрашивающих может быть больше одного, все зависит от сервера, сети и поставленных задач.
Технически немного иные, но по своей сути идентичные процессы происходят в среде MySQL:
- Система создает базу данных для хранения информации (ее сортировки, идентификации и т.п.).
- Клиенты (другие компьютеры в сети) подают запросы к базе с помощью специфичных для SQL команд.
- Серверное приложение обрабатывает запрос и выдает ответ клиенту (выдает запрашиваемые данные).
Для взаимодействия с MySQL-сервером используются соответствующие утилиты. Некоторые работают только в командной строке. Некоторые награждены графическим интерфейсом. Популярные решения – WorkBench, SequelPro, SQL Studio, TablePlus. Правда, большинство вебмастеров предпочитает phpMyAdmin, так как та входит в LAMP и работает в браузере.
Как создать базу данных на хостинге?
У хостинг-провайдеров встречаются панели управления со встроенной функцией создания баз данных. В Timeweb такая есть. Чтобы создать на хостинге базу данных, надо открыть раздел «Базы данных MySQL» и кликнуть по кнопке «Создание новой базы данных». Система попросит указать параметры, имя пользователя и пароль администратора для авторизации.
Что касается создания БД на VDS, то можно воспользоваться панелью управления сервером. Например, ISPmanager.
В ISPmanager базы создаются так:
- Открываем панель управления.
- Переходим в пункт меню «Инструменты».
- Кликаем по подпункту «Базы данных».

- Нажимаем на кнопку «Создать».

- Указываем параметры будущей базы (логин, пароль и т.п.).
- Сохраняем данные, кликнув по кнопке ОК.
Почему MySQL так популярна?
Если взглянуть на статистику, то по частоте использования и упоминания в сети MySQL проигрывает только решению от компании Oracle. Из-за чего так происходит? Конечно же, из-за ее преимуществ над существующими конкурентами.
На швейцарскую систему полагаются IT-корпорации ранга Facebook, потому что она:
- Гибкая и несложная в использовании. На создание и поддержку БД уходит меньше времени. Требуется меньший уровень компетенции для того, чтобы полноценно работать с MySQL и реализовывать весь ее потенциал.
- Имеет открытый исходный код, поэтому легко поддается модификации, и за это не нужно кому-то платить.
- Поддерживается компанией Oracle и сообществом разработчиков, выступающих за развитие opensource-приложений.
- Работает шустрее конкурентов. Внутренняя структура MySQL позволяет ей разгребать завалы из таблиц и строк за секунды. Независимо от специфичности связей между данными и их количества, сервер обрабатывает запросы любой сложности быстрее других БД.
- Стала именем нарицательным и вместе с этим неким стандартом в индустрии. Компании ищут сотрудников, умеющих работать с MySQL, интернет пестрит инструкциями по работе как раз с MySQL-серверами.
- Может похвастаться высоким уровнем защиты данных благодаря системе выдачи прав и продвинутой системе управления пользователями. А еще тут есть верификация на базе хостинга и шифрование.
Подробнее о безопасности MySQL
Защита данных обеспечивается двумя подсистемами: таблицей привилегий и плагинами безопасности.
Первая нужна, чтобы оградить часть данных от определенной группы пользователей. Она вынуждает клиентов, делающих запросы, авторизоваться в системе, дабы та могла убедиться в праве клиента на получение запрашиваемой информации. То есть управлять базой в полной мере может ограниченное число лиц. При желании можно запретить определенному кругу лиц возможность вносить в таблицы любые изменения или удалять из них данные, но при этом оставить за ними возможность добавлять новые единицы данных в существующую базу.
Ближайший пример такой системы — права доступа в WordPress и DataLife Engine.
Плагины безопасности расширяют базовые механизмы защиты целостности данных. Например, создают на сервере более строгую политику создания паролей или дополнительное хранилище для конфиденциальной информации.
Недостатки MySQL
Не обошлось без как минимум 4 увесистых ложек дегтя в бочку обсуждаемой СУБД.
- MySQL не всегда ведет себя стабильно. По данным популярного хостинга Digital Ocean, шведская СУБД вовсе не так надежна, как о ней говорят. Часть распространенных задач нередко завершаются ошибкой.
- Выше я писал, что MySQL — производительная. Да, это так. Даже при работе с большим объемом данных. Но не с большим объемом одновременно выполняемых задач. При их увеличении наблюдаются заметные простои и замедления. Разработчики отмечают, что СУБД ведет себя куда послушнее и предсказуемо в небольших масштабах и при работе с минимальным количеством операций типа «запись/чтение».
- Развитие MySQL замедлилось с тех пор, как ее купила Oracle. Компания не тратит время и ресурсы на развитие приобретенного продукта. При этом патчи, предлагаемые независимыми разработчиками, отвергает.
- Легкость системы в целом достигается за счет минимизации доступных по умолчанию функций. И даже базовые функции зависимы от сторонних разработок. Приходится «догонять» за счет установки расширений.
Выводы
Популярность MySQL — не случайность. Она действительно будет идеальна для решения большинства задач, пока вы не поймете, что вам нужно что-то помощнее. Либо она навсегда останется для вас единственной и неповторимой, как и для миллиона вебмастеров по всей планете.
MySQL
MySQL — это реляционная система управления базами данных (СУБД), которая распространяется как свободное программное обеспечение. Является одной из наиболее популярных, так как отличается гибкостью, легкостью, удобством в использовании.
Слово «реляционный» означает, что базы представлены в виде связанной информации и описываются как набор связей. MySQL работает с языком запросов SQL, который традиционно используется в базах данных.
Кто пользуется MySQL
- Бэкенд-разработчики, задача которых — управлять базой данной на серверной стороне сайта или приложения.
- Разработчики десктопных и мобильных приложений, в которых есть база данных для хранения информации.
- Администраторы баз данных — специалисты, которые занимаются построением и настройкой базы.
В основном MySQL используется для работы со средними и небольшими проектами. Она имеет открытый исходный код, поэтому любой разработчик может с ним ознакомиться. Сейчас систему поддерживают известная компания Oracle и независимое сообщество разработчиков-энтузиастов.
Для чего нужна MySQL
- Удобный доступ к базам данных.
- Корректное распределенное хранение данных на сервере.
- Быстрый поиск нужной информации в базе с помощью языка SQL.
- Идентификация и обработка отдельных данных, их преобразование и отправка.
- Создание, редактирование и удаление записей, которые есть в базе.
- Отправка транзакций — «пакетов» из нескольких запросов к базе.
- Множественный доступ к базе с разных устройств — например, из браузеров нескольких пользователей.
- Выдача разных прав доступа различным пользователям.
- Обеспечение безопасности данных: их защита, шифрование и контроль доступа.
- Возможность контролировать версии базы данных: делать бэкапы, обновлять базу или откатывать назад.
- Контроль состояния базы данных.
Как устроена база данных MySQL
MySQL имеет клиент-серверную архитектуру. Это означает, что база данных хранится в одном источнике — на сервере. А связываться с ней могут клиенты — сторонние устройства. Клиенты отправляют запросы к БД, а потом получают от сервера информацию.
Примерно таким образом работают сайты: в их «внешней», видимой человеку части есть возможность послать на сервер запрос. Это любая отправка формы: вход в личный кабинет, публикация комментария или поиск по сайту.
Клиент-серверная архитектура делает хранение данных безопаснее: клиентские компьютеры не могут получить к ним бесконтрольный доступ. Им открывается только часть данных, которую можно получить по запросу. Вся информация находится на сервере, а клиенты не перегружены, поэтому им не нужны большие вычислительные мощности.
Распространено выражение «сервер MySQL», которое как раз обозначает расположенную на сервере базу данных под контролем этой СУБД.
Преимущества MySQL
Гибкость. СУБД легко настраивается под индивидуальные потребности и особенности конкретного сайта. Для нее есть много дополнительных расширений или плагинов, она легко устанавливается на хостинги. Некоторые хостинги позволяют подключить сервер MySQL в несколько кликов. Система поддерживает множество типов таблиц и может работать внутри автономных программ. Так как проект бесплатный и имеет открытый исходный код, энтузиасты добавляют поддержку новых видов таблиц.
Универсальность. MySQL работает на ОС семейств Windows, Linux, Unix, Solaris и других. Также СУБД имеет API для большинства популярных языков программирования: C и C++, PHP, Python, Ruby, Java и других. Хотя в основном MySQL используется для веб-проектов, она может работать автономно — в систему входит специальный внутренний сервер. Он позволяет поднять локальную базу данных на конечном устройстве — так хранят информацию приложения, которые не взаимодействуют с сетью.
Высокая производительность. Со средними и небольшими базами MySQL работает быстрее, чем другие популярные решения. Это особенность связана с ее внутренней структурой.
Бесплатный доступ и открытый исходный код. MySQL — полностью бесплатное свободное ПО, которым может воспользоваться каждый. Код системы открыт для всех желающих, поэтому пользователи могут отредактировать работу собственного SQL-сервера. Это требуется не часто, но такая возможность дает большую гибкость в работе.
Безопасность. MySQL обеспечивает высокий уровень безопасности при хранении и передаче данных. У системы продвинутая система контроля прав для разных пользователей, есть шифрование и верификация. Для СУБД существуют плагины, которые увеличивают уровень безопасности на стороне сервера и дополнительно защищают данные.
Популярность. Благодаря бесплатному доступу, простому входу и универсальности MySQL — одно из самых популярных решений для управления БД. У системы развитое сообщество по всему миру, на ней реализовано множество проектов, и специалисты, умеющие с ней работать, ценятся везде.
Недостатки MySQL
Медленное развитие. Система бесплатная, поэтому обновления выходят редко. Это популярный недостаток открытого ПО. В случае с MySQL медленное развитие связано с политикой компании Oracle. Она осторожно относится к идеям независимых разработчиков и не слишком активно работает с проектом сама.
Недостаток функций. В MySQL по умолчанию меньше функций и возможностей, чем в других СУБД. Это обеспечивает легкость и простоту освоения, но при этом для любых дополнительных действий необходимо скачивать плагины и расширения.
Снижение производительности при работе с большими проектами. Система отлично работает на небольших и средних базах данных. Но в больших проектах MySQL может начать вести себя непредсказуемо из-за множества одновременных запросов к базе. Это связано со структурными особенностями MySQL — изначально она не была предназначена для таких задач.
Как начать работу с MySQL
MySQL Community Edition, то есть бесплатная открытая версия, распространяется по лицензии GPL. Она предполагает, что системой можно пользоваться свободно, но только в бесплатных проектах. Для коммерческого использования понадобится покупать расширенную версию — она платная.
Новичкам, которые хотят научиться работать с MySQL, достаточно бесплатного варианта. Его можно скачать на официальном сайте проекта в виде исходного кода. Там же можно загрузить API и коннекторы — инструменты для связи с разными языками программирования, средами и технологиями.
Если у вас уже есть сервер на каком-нибудь хостинге, можно проверить возможность подключения базы данных MySQL в личном кабинете. Большинство крупных хостингов позволяют так делать — тогда подключение займет всего несколько кликов. В этом случае ничего скачивать не нужно. Ознакомиться с документацией можно на этой странице.