![]() | |
| |
Автор (ы) оригинала | MySQL AB |
---|---|
Разработчики) | Корпорация Oracle |
Первый выпуск | 23 мая 1995 г. ; 26 лет назад ( 1995-05-23) |
Стабильный выпуск | 8.0.26 ![]() |
Репозиторий | |
Написано в | C, C ++ |
Операционная система | Linux, Solaris, macOS, Windows, FreeBSD |
Доступно в | английский |
Тип | СУБД |
Лицензия | GPLv2 или проприетарный |
Веб-сайт | www.mysql.com ![]() |
MySQL ( / ˌ м aɪ ˌ ɛ с ˌ к Ju ɛ л / ) является открытым исходным кодом реляционная система управления базами данных (СУБД). Его название представляет собой комбинацию «My», имени дочери соучредителя Майкла Видениуса, и « SQL », аббревиатуры языка структурированных запросов. Реляционная база данных организует данные в одну или несколько таблиц данных, в котором типы данных могут быть связаны друг с другом; эти отношения помогают структурировать данные. SQL - это язык, который программисты используют для создания, изменения и извлечения данных из реляционной базы данных, а также для управления доступом пользователей к базе данных. Помимо реляционных баз данных и SQL, СУБД, такая как MySQL, работает с операционной системой для реализации реляционной базы данных в системе хранения компьютера, управляет пользователями, обеспечивает доступ к сети и облегчает тестирование целостности базы данных и создание резервных копий.
MySQL - это бесплатное программное обеспечение с открытым исходным кодом в соответствии с условиями Стандартной общественной лицензии GNU, а также доступно под множеством проприетарных лицензий. MySQL принадлежала и спонсировалась шведской компанией MySQL AB, которую купила Sun Microsystems (ныне Oracle Corporation ). В 2010 году, когда Oracle приобрела Sun, Видениус развил проект MySQL с открытым исходным кодом, чтобы создать MariaDB.
MySQL имеет автономные клиенты, которые позволяют пользователям напрямую взаимодействовать с базой данных MySQL с помощью SQL, но чаще MySQL используется с другими программами для реализации приложений, которым необходимы возможности реляционной базы данных. MySQL - это компонент программного стека веб-приложений LAMP (и других ), который является аббревиатурой от Linux, Apache, MySQL, Perl / PHP / Python. MySQL используется многими веб-приложениями, управляемыми базами данных, включая Drupal, Joomla, phpBB и WordPress. MySQL также используется многими популярными веб-сайтами, включая Facebook, Flickr, MediaWiki, Twitter и YouTube.
MySQL написан на C и C ++. Его синтаксический анализатор SQL написан на yacc, но использует самодельный лексический анализатор. MySQL работает на многих системных платформах, включая AIX, BSDi, FreeBSD, HP-UX, ArcaOS, eComStation, IBM i, IRIX, Linux, macOS, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS / 2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos и Tru64. Также существует порт MySQL для OpenVMS.
Само программное обеспечение сервера MySQL и клиентские библиотеки используют двойное лицензирование. Они предлагаются по GPL версии 2 или по частной лицензии.
Поддержка может быть получена из официального руководства. Бесплатная поддержка также доступна на различных IRC каналах и форумах. Oracle предлагает платную поддержку через свои продукты MySQL Enterprise. Они различаются объемом услуг и ценой. Кроме того, существует ряд сторонних организаций, предоставляющих поддержку и услуги.
MySQL получил положительные отзывы, и обозреватели отметили, что он «работает очень хорошо в среднем» и что «интерфейсы разработчика есть, а документация (не говоря уже об обратной связи в реальном мире через веб-сайты и т.п.) очень, очень хороший". Он также был протестирован как «быстрый, стабильный и настоящий многопользовательский, многопоточный сервер баз данных SQL».
MySQL был создан шведской компанией MySQL AB, основанной шведами Дэвидом Аксмарком, Алланом Ларссоном и финским шведом Майклом «Монти» Видениусом. Первоначальная разработка MySQL Widenius и Axmark началась в 1994 году. Первая версия MySQL появилась 23 мая 1995 года. Первоначально она была создана для личного использования из mSQL на основе низкоуровневого языка ISAM, который создатели сочли слишком медленным и негибким. Они создали новый интерфейс SQL, сохранив тот же API, что и mSQL. Поддерживая согласованность API с системой mSQL, многие разработчики смогли использовать MySQL вместо предшествующего mSQL (с собственной лицензией).
Дополнительные вехи в разработке MySQL включали:
Выпускать | Общедоступность | Последняя дополнительная версия | Последний релиз | Окончание поддержки |
---|---|---|---|---|
Старая версия, больше не поддерживается: 5.1 | 14 ноября 2008 г. ; 12 лет назад ( 2008-11-14) | 5.1.73 | 2013-12-03 | Декабрь 2013 |
Старая версия, больше не поддерживается: 5.5 | 3 декабря 2010 г. ; 10 лет назад ( 2010-12-03) | 5.5.62 | 2018-10-22 | Декабрь 2018 |
Старая версия, больше не поддерживается: 5,6 | 5 февраля 2013 г. ; 8 лет назад ( 2013-02-05) | 5.6.51 | 2021-01-20 | Февраль 2021 г. |
Старая версия, но все еще поддерживается: 5,7 | 21 октября 2015 г. ; 5 лет назад ( 2015-10-21) | 5.7.35 | 2021-07-20 | Октябрь 2023 г. |
Текущая стабильная версия: 8.0 | 19 апреля 2018 г. ; 3 года назад ( 2018-04-19) | 8.0.26 | 2021-07-20 | Апрель 2026 г. |
Работа над версией 6 прекратилась после приобретения Sun Microsystems. Продукт MySQL Cluster использует версию 7. Было принято решение перейти к версии 8 в качестве следующего основного номера версии.
15 июня 2001 года NuSphere подала в суд на MySQL AB, TcX DataKonsult AB и ее первоначальных авторов Майкла («Монти») Видениуса и Дэвида Аксмарка в окружной суд США в Бостоне за «нарушение контракта, вредоносное вмешательство в контракты и отношения третьих сторон и недобросовестную конкуренцию. ".
В 2002 году MySQL AB подала в суд на Progress NuSphere за нарушение авторских прав и товарных знаков в окружной суд США. NuSphere предположительно нарушила авторские права MySQL AB, связав код MySQL под лицензией GPL с таблицей NuSphere Gemini без соблюдения условий лицензии. После предварительного слушания перед судьей Патти Сарис 27 февраля 2002 года стороны вступили в переговоры об урегулировании и в конечном итоге договорились. После слушания FSF прокомментировала, что «судья Сарис ясно дала понять, что она считает GNU GPL обязательной и обязательной лицензией».
В октябре 2005 года корпорация Oracle приобрела Innobase OY, финскую компанию, разработавшую сторонний механизм хранения InnoDB, который позволяет MySQL предоставлять такие функции, как транзакции и внешние ключи. После приобретения в пресс-релизе Oracle упоминалось, что контракты, которые делают программное обеспечение компании доступным для MySQL AB, должны быть обновлены (и, предположительно, пересмотрены) где-то в 2006 году. Во время конференции пользователей MySQL в апреле 2006 года MySQL AB выпустила пресс-релиз. релиз, который подтвердил, что MySQL AB и Innobase OY договорились о «многолетнем» продлении своего лицензионного соглашения.
В феврале 2006 года корпорация Oracle приобрела Sleepycat Software, производителя Berkeley DB, механизма базы данных, обеспечивающего основу для другого механизма хранения MySQL. Это не имело большого эффекта, поскольку Berkeley DB не использовалась широко и была исключена (из-за отсутствия использования) в MySQL 5.1.12, версии MySQL 5.1 до GA, выпущенной в октябре 2006 года.
В январе 2008 года Sun Microsystems купила MySQL AB за 1 миллиард долларов.
В апреле 2009 года корпорация Oracle заключила соглашение о покупке Sun Microsystems, которая на тот момент владела авторскими правами и товарным знаком MySQL. Совет директоров Sun единогласно одобрил сделку. Он также был одобрен акционерами Sun и правительством США 20 августа 2009 года. 14 декабря 2009 года Oracle пообещала продолжить совершенствование MySQL, как это делалось в предыдущие четыре года.
Один из основателей MySQL AB Монти Видениус начал движение против приобретения Oracle компании MySQL AB, чтобы «сохранить MySQL» у Oracle. В петиции более 50 000 разработчиков и пользователей содержится призыв к Европейской комиссии заблокировать одобрение приобретения. В то же время некоторые лидеры общественного мнения о свободном программном обеспечении (в том числе Памела Джонс из Groklaw, Ян Вильдебоер и Карло Пиана, которые также выступали в качестве со-юрисконсульта в процедуре регулирования слияния) выступали за безоговорочное одобрение слияния. В рамках переговоров с Европейской комиссией Oracle пообещала, что сервер MySQL будет продолжать использовать стратегию двойного лицензирования как минимум до 2015 года, давно используемую MySQL AB, с доступными проприетарными версиями и версиями GPL. Антимонопольное законодательство ЕС «заставляло его отказаться от MySQL в качестве условия одобрения слияния». Но, как сообщает WikiLeaks, министерство юстиции США по запросу Oracle оказало давление на ЕС, чтобы тот безоговорочно одобрил слияние. Европейская комиссия в конечном итоге безоговорочно одобрила приобретение Oracle компании MySQL AB 21 января 2010 года.
В январе 2010 года, до того, как Oracle приобрела MySQL AB, Монти Видениус запустил форк MariaDB, основанный только на GPL. MariaDB основан на той же кодовой базе, что и MySQL server 5.5, и стремится поддерживать совместимость с версиями, предоставляемыми Oracle.
MySQL предлагается в двух различных редакциях: MySQL Community Server с открытым исходным кодом и проприетарный Enterprise Server. MySQL Enterprise Server отличается серией проприетарных расширений, которые устанавливаются как серверные плагины, но в остальном используют систему нумерации версий и построены на той же базе кода.
Основные функции, доступные в MySQL 5.6:
Разработчики выпускают небольшие обновления MySQL Server примерно каждые два месяца. Исходные коды можно получить с веб-сайта MySQL или из репозитория MySQL на GitHub, оба по лицензии GPL.
При использовании некоторых механизмов хранения, отличных от InnoDB по умолчанию, MySQL не соответствует полному стандарту SQL для некоторых реализованных функций, включая ссылки на внешние ключи. Проверочные ограничения анализируются, но игнорируются всеми механизмами хранения до версии MySQL 8.0.15.
Вплоть до MySQL 5.7 триггеры ограничены одним триггером на действие / время, что означает, что не более одного триггера может быть определено для выполнения после операции INSERT и одного перед INSERT в той же таблице. Для представлений нельзя определить триггеры.
Встроенные функции базы данных MySQL как UNIX_TIMESTAMP () вернет 0 после 03:14:07 UTC на 19 января 2038 года. Недавно была предпринята попытка решить проблему, которая была назначена внутренней очереди.
MySQL можно собрать и установить вручную из исходного кода, но чаще он устанавливается из двоичного пакета, если не требуются специальные настройки. В большинстве дистрибутивов Linux, то система управления пакетами можно загрузить и установить MySQL с минимальными усилиями, хотя дальнейшая конфигурация часто требуется для настройки параметров безопасности и оптимизации.
Хотя MySQL начинался как недорогая альтернатива более мощным проприетарным базам данных, он постепенно эволюционировал, чтобы поддерживать и потребности более высокого уровня. Он по-прежнему чаще всего используется в небольших и средних развертываниях с одним сервером либо в качестве компонента в веб-приложении на основе LAMP, либо в качестве автономного сервера базы данных. Привлекательность MySQL во многом обусловлена его относительной простотой и удобством использования, что обеспечивается экосистемой инструментов с открытым исходным кодом, таких как phpMyAdmin. В среднем диапазоне MySQL можно масштабировать, развернув его на более мощном оборудовании, таком как многопроцессорный сервер с гигабайтами памяти.
Однако существуют ограничения на то, насколько производительность может масштабироваться на одном сервере («масштабирование»), поэтому в более крупных масштабах требуется развертывание MySQL на нескольких серверах («горизонтальное масштабирование») для обеспечения повышенной производительности и надежности. Типичная конфигурация высокого уровня может включать мощную главную базу данных, которая обрабатывает операции записи данных и реплицируется на несколько ведомых устройств, которые обрабатывают все операции чтения. Главный сервер постоянно отправляет события binlog на подключенные подчиненные устройства, поэтому в случае сбоя подчиненное устройство может быть назначено новым главным сервером, что минимизирует время простоя. Дальнейшее повышение производительности может быть достигнуто путем кэширования результатов запросов к базе данных в памяти с помощью memcached или разбиения базы данных на более мелкие фрагменты, называемые шардами, которые можно распределить по ряду распределенных кластеров серверов.
Oracle MySQL предлагает решение высокой доступности с набором инструментов, включая маршрутизатор MySQL и оболочку MySQL. Они основаны на групповой репликации, инструментах с открытым исходным кодом.
MariaDB предлагает аналогичное предложение с точки зрения продуктов.
MySQL также может работать на платформах облачных вычислений, таких как Microsoft Azure, Amazon EC2, Oracle Cloud Infrastructure. Вот некоторые распространенные модели развертывания MySQL в облаке:
Графический пользовательский интерфейс (GUI) представляет собой тип интерфейса, который позволяет пользователям взаимодействовать с электронными устройствами или программами через графические иконки и визуальные индикаторы, такие как вторичное обозначение, в отличии от текстовых интерфейсов, набранной команды на этикетки или текст навигации.
Доступны сторонние проприетарные и бесплатные графические административные приложения (или «внешние интерфейсы»), которые интегрируются с MySQL и позволяют пользователям работать со структурой базы данных и данными визуально.
MySQL Workbench - это интегрированная среда для MySQL. Он был разработан MySQL AB и позволяет пользователям графически управлять базами данных MySQL и визуально проектировать структуры баз данных.
MySQL Workbench доступен в двух версиях: обычная бесплатная версия Community Edition с открытым исходным кодом, которую можно загрузить с веб-сайта MySQL, и проприетарная версия Standard Edition, которая расширяет и улучшает набор функций Community Edition.
Интерфейс командной строки является средством взаимодействия с компьютерной программой, где командуют вопросы пользователей к программе, набрав в последовательных строках текста (командные строки). MySQL поставляется со многими инструментами командной строки, основным интерфейсом которых является клиент mysql.
Утилиты MySQL - это набор утилит, предназначенных для выполнения общих задач обслуживания и администрирования. Первоначально входившие в состав MySQL Workbench, эти утилиты можно загрузить отдельно от Oracle.
Percona Toolkit - это кроссплатформенный набор инструментов для MySQL, разработанный на Perl. Percona Toolkit можно использовать для проверки правильности работы репликации, исправления поврежденных данных, автоматизации повторяющихся задач и ускорения работы серверов. Percona Toolkit входит в состав нескольких дистрибутивов Linux, таких как CentOS и Debian, а также доступны пакеты для Fedora и Ubuntu. Percona Toolkit изначально разрабатывался как Maatkit, но по состоянию на конец 2011 года Maatkit больше не разрабатывается.
Оболочка MySQL - это инструмент для интерактивного использования и администрирования базы данных MySQL. Он поддерживает режимы JavaScript, Python или SQL и может использоваться для целей администрирования и доступа.
Многие языки программирования с языковыми API включают библиотеки для доступа к базам данных MySQL. К ним относятся MySQL Connector / Net для языков.NET / CLI и драйвер JDBC для Java.
Кроме того, интерфейс ODBC под названием MySQL Connector / ODBC позволяет дополнительным языкам программирования, которые поддерживают интерфейс ODBC, взаимодействовать с базой данных MySQL, например ASP или ColdFusion. HTSQL - URL -На метод запроса также поставляется с адаптером MySQL, что позволяет прямое взаимодействие между MySQL базы данных и любой веб - клиента через структурированные URL. Другие драйвера существуют для таких языков, как Python или Node.js .
Существует множество форков MySQL, включая следующие.
СМИ, связанные с MySQL, на Викискладе?