Область управления базами данных претерпела значительное развитие, что привело к разработке инновационных инструментов и систем, предназначенных для простого управления сложными структурами данных. В авангарде этого технологического прогресса находится MySQL 8.0 Community Edition, важнейший игрок в сфере систем управления реляционными базами данных (RDBMS) с открытым исходным кодом.
Понимание тонкостей возможностей MySQL 8.0 расширит ваши технические знания и вооружит вас компетенцией для эффективного управления данными. Будучи надежным, прочным и безопасным инструментом, MySQL 8.0 Community Edition предоставляет целый ряд преимуществ и заметных улучшений.
Ключевые особенности и улучшения в MySQL 8.0
- Повышенная производительность: Используя такие усовершенствования, как невидимые индексы, гистограммы и улучшенные хэш-соединения, MySQL 8.0 предлагает значительные улучшения производительности по сравнению с предыдущими версиями. Оптимизированная производительность позволяет быстрее обрабатывать и извлекать данные, тем самым повышая производительность.
- Улучшенная безопасность: Уделяя особое внимание целостности данных, MySQL 8.0 представляет множество усовершенствований в области безопасности, таких как расширенное шифрование паролей, роли SQL, сбор привилегий и многое другое.
- Всесторонняя поддержка ГИС: MySQL 8.0 включает полную поддержку географических информационных систем (GIS), включая пространственные индексы на InnoDB. Эта функция открывает совершенно новые возможности для управления и манипулирования географическими данными.
- Словарь данных: Введение транзакционного словаря данных, глобального, транзакционного, безопасного при сбоях и хранимого на диске хранилища метаданных, является значительным изменением. Оно обеспечивает более удобную и последовательную систему работы с метаданными в MySQL 8.0.
- Улучшенная поддержка JSON: MySQL 8.0 предлагает улучшенные функции JSON, позволяющие более эффективно работать с типами данных JSON. Эти усовершенствования упрощают процесс управления и манипулирования сложными структурами данных JSON.
Предоставляя эти и другие усовершенствования, MySQL 8.0 Community Edition доказывает, что является переломным моментом в области РСУБД. Это свидетельство постоянного стремления к созданию надежной, прочной и идеально подходящей для решения множества задач по управлению данными базы данных.
Теперь перейдем к практическому аспекту этих рассуждений. Следующее руководство продемонстрирует, как установить MySQL 8.0 на Ubuntu 22.04 Jammy Jellyfish или Ubuntu 20.04 Focal Fossa LTS Linux двумя способами с помощью менеджера пакетов APT: первый - с помощью репозитория Ubuntu по умолчанию; второй - путем импорта официального репозитория APT из самого MySQL и установки последней стабильной версии.
Установка MySQL 8.0 на Ubuntu
Обновление системных пакетов
Прежде чем приступить к процессу установки, всегда полезно обновить систему. Этот процесс гарантирует, что все существующие пакеты актуальны, что минимизирует вероятность конфликтов во время установки MySQL 8.0.
Выполните следующие команды для обновления системы:
1 2 | sudo apt update sudo apt upgrade |
Выбор метода установки MySQL 8.0 APT
Существует два способа установки MySQL 8.0 на систему Ubuntu. Вы можете либо использовать репозиторий Ubuntu по умолчанию, либо импортировать официальный репозиторий MySQL APT.
Метод 1: Установка MySQL 8.0 с помощью репозитория Ubuntu
Если вы ищете метод, в котором приоритет отдается стабильности системы, то рекомендуем воспользоваться именно этим способом. Устанавливая MySQL из репозитория Ubuntu по умолчанию, вы обеспечиваете стабильную, тщательно протестированную версию MySQL 8.0.
Чтобы установить MySQL этим способом, выполните следующую команду:
1 | sudo apt install mysql-server |
Метод 2: Установка MySQL 8.0 с помощью MySQL APT Repository
Этот метод подходит для тех, кто хочет получить последнюю стабильную версию MySQL 8.0 непосредственно из репозитория MySQL. Этот подход может предложить быстрые улучшения, особенно выгодные в зависимости от ваших общих системных требований.
Установка необходимых пакетов:
Прежде чем приступить к использованию этого метода, вам потребуется установить несколько необходимых пакетов. Эти пакеты обычно присутствуют в большинстве систем Ubuntu. Однако, чтобы подстраховаться, выполните следующую команду, чтобы убедиться, что они установлены:
1 | sudo apt install dirmngr ca-certificates ca-certificates software-properties-common apt-transport-https curl lsb-release -y |
1 | Импорт репозитория MySQL 8.0 Community Server Repository: |
Чтобы установить MySQL из официального репозитория, вам сначала нужно импортировать его GPG ключ и репозиторий в вашу систему. Вот как это делается:
Импортируйте ключ GPG:
1 | curl -fsSL http://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | sudo gpg --dearmor | sudo tee /usr/share/keyrings/mysql.gpg > /dev/null |
Затем импортируйте репозиторий MySQL 8.0:
1 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-8.0" | sudo tee -a /etc/apt/sources.list.d/mysql.list |
Если вы разработчик или у вас есть особые требования, вы можете по желанию импортировать репозиторий исходников MySQL:
1 | echo "deb-src [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-8.0" | sudo tee -a /etc/apt/sources.list.d/mysql.list |
Разработчики также могут импортировать репозиторий инструментов MySQL следующим образом:
1 2 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-tools" | sudo tee -a /etc/apt/sources.list.d/mysql.list echo "deb-src [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/mysql.gpg] http://repo.mysql.com/apt/ubuntu $(lsb_release -cs) mysql-tools" | sudo tee -a /etc/apt/sources.list.d/mysql.list |
После добавления репозиториев вы можете проверить изменения, выполнив эту команду:
1 | grep mysql /etc/apt/sources.list.d/mysql.list |
Обновление кэша APT:
Теперь, когда вы успешно импортировали репозиторий MySQL APT, пришло время обновить кэш Advanced Package Tool (APT) для распознавания нового репозитория.
Выполните следующую команду для обновления кэша APT:
1 | sudo apt update |
Установка MySQL 8.0 Community Edition Server:
Теперь, когда все необходимые условия созданы, мы готовы к установке MySQL 8.0 Community Edition Server. Выполните следующую команду, чтобы начать установку:
1 | sudo apt install mysql-community-server |
В процессе установки вам будет предложено установить пароль для корневого пользователя MySQL. Убедитесь, что этот пароль надежен, и запишите его на будущее. После подтверждения пароля вам будет предложено выбрать плагин аутентификации по умолчанию. Если вы сомневаетесь, выберите "Использовать надежное шифрование пароля", как рекомендует MySQL.
Пример подсказок для MySQL 8.0 Community Edition на Ubuntu Linux:
Чтобы подтвердить установку, проверьте версию установленного MySQL с помощью следующей команды:
1 | apt policy mysql-community-server |
Пример вывода:
Команды службы для MySQL 8.0 Community Server
После установки сервера MySQL 8.0 Community Edition система автоматически активирует службу MySQL и устанавливает ее на автоматический запуск при загрузке системы. Для эффективной работы вашего сервера баз данных необходимо знать некоторые основные команды управления службами.
Одной из первых задач после установки является подтверждение того, что служба MySQL работает как положено. С помощью команды systemctl, специально предназначенной для взаимодействия со службами systemd, вы можете просмотреть текущее состояние службы MySQL. Выполните следующую команду:
1 | systemctl status mysql |
При успешной работе сообщение о статусе должно показать, что служба активна и работает без каких-либо проблем.
Понимание того, как управлять службой MySQL, является важной частью обслуживания вашего сервера баз данных. Различные команды systemctl позволяют напрямую взаимодействовать со службой MySQL. Ниже приведен обзор некоторых важных команд:
Остановка службы MySQL
Чтобы остановить службу MySQL в любой момент времени, используйте следующую команду:
1 | sudo systemctl stop mysqld |
Запуск службы MySQL
Если служба MySQL не запущена или после того, как вы ее остановили, перезапустите ее с помощью следующей команды:
1 | sudo systemctl start mysqld |
Отключение службы MySQL при запуске системы
Бывают ситуации, когда вы предпочитаете, чтобы служба MySQL не запускалась автоматически при загрузке системы. Чтобы отключить автозапуск, выполните следующую команду:
1 | sudo systemctl disable mysqld |
Включение службы MySQL при запуске системы
Чтобы отменить вышеописанное действие и настроить службу MySQL на автоматический запуск при загрузке системы, выполните следующую команду:
1 | sudo systemctl enable mysqld |
Перезапуск службы MySQL
Если вам необходимо перезапустить службу MySQL - например, после внесения изменений в конфигурацию - используйте следующую команду:
1 | sudo systemctl restart mysqld |
Безопаность MySQL 8.0
При установке MySQL некоторые настройки по умолчанию могут не соответствовать всем стандартам безопасности, что потенциально может открыть вашу базу данных для вторжений или эксплуатации. Важнейшим шагом после установки является усиление безопасности вашего экземпляра MySQL. MySQL предоставляет сценарий безопасности mysql_secure_installation, который помогает усилить защиту вашей базы данных.
Запуск скрипта настройки безопасности MySQL
Скрипт mysql_secure_installation является частью пакета MySQL, который повышает безопасность. Запустите скрипт, выполнив следующую команду:
1 | sudo mysql_secure_installation |
Взаимодействие со сценарием безопасности
После выполнения команды скрипт попросит вас ввести пароль root, первоначально установленный во время установки MySQL.
Вы встретите подсказку относительно компонента VALIDATE PASSWORD, который помогает применять политику надежности пароля. Как правило, достаточно настроек по умолчанию.
Затем сценарий проведет вас через ряд шагов:
1. Настройка паролей для корневых учетных записей (Password Settings for Root Accounts)
Здесь у вас есть возможность сбросить пароль root. Однако если вы уже установили его во время первоначальной установки, вы можете пропустить этот шаг. Сценарий требует ввести новый пароль дважды для проверки.
2. Удаление анонимных пользователей (Removal of Anonymous Users)
MySQL, по умолчанию, включает учетную запись анонимного пользователя. Эта учетная запись позволяет любому войти в MySQL, не имея аутентифицированной учетной записи пользователя, что может представлять значительный риск для безопасности. Скрипт предлагает вам возможность удалить эти анонимные учетные записи пользователей:
Remove anonymous users? (Нажмите y|Y для Да, любую другую клавишу для Нет) : Y <---- Введите Y, затем нажмите клавишу ENTER.
3. Запрет удаленного входа Root ( Disallowing Root Login Remotely)
Согласно стандартному протоколу безопасности, пользователю root должно быть разрешено подключаться только с 'localhost'. Этот протокол гарантирует, что удаленные попытки угадать пароль root будут сведены к минимуму. Скрипт попросит вас подтвердить отключение удаленного входа root:
Disallow root login remotely? (Нажмите y|Y для Да, любую другую клавишу для Нет) : Y <---- Введите Y, затем нажмите клавишу ENTER.
4. Удаление тестовой базы данных (Removal of Test Database)
По умолчанию установка MySQL включает в себя 'тестовую' базу данных. Эта база данных доступна всем желающим и предназначена только для тестирования. Перед переносом вашей установки в производственную среду очень важно удалить тестовую базу данных и доступ к ней:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y <---- Введите Y и нажмите клавишу ENTER.
5. Перезагрузка таблиц привилегий (Reloading Privilege Tables)
Перезагрузка таблиц привилегий позволяет всем изменениям, которые вы сделали до сих пор, вступить в силу немедленно:
Reload privilege tables now? (Нажмите y|Y для Да, любую другую клавишу для Нет) : Y <---- Введите Y и нажмите клавишу ENTER.
Выполняя эти шаги и подтверждая изменения безопасности, вы повышаете безопасность вашей установки сервера MySQL, снижая риск потенциальных эксплойтов.
Управление MySQL 8.0 в Ubuntu Linux
Управление сервером MySQL включает в себя несколько рутинных задач, таких как обновление, модернизация и, при необходимости, деинсталляция. Ubuntu Linux предоставляет эффективные утилиты командной строки для этих задач, гарантируя, что ваш сервер MySQL остается актуальным и безопасным.
Обновление MySQL 8.0 Community Server
Регулярные обновления необходимы для поддержания бесперебойной работы вашего сервера MySQL. Эти обновления часто приносят исправления ошибок, исправления безопасности и новые возможности, помогая повысить общую безопасность и функциональность вашего сервера.
Поскольку вы добавили официальный репозиторий MySQL APT в свою систему, обновление MySQL является простым процессом. Следующая команда представляет собой комбинацию двух отдельных команд, sudo apt update и sudo apt upgrade.
1 | sudo apt update && sudo apt upgrade |
Команда sudo apt update получает информацию о том, какие пакеты могут быть обновлены, включая MySQL, если обновление доступно. С другой стороны, sudo apt upgrade обновляет фактические пакеты.
Деинсталляция MySQL 8.0 Community Server
Могут быть случаи, когда вам больше не нужен сервер MySQL в вашей системе Ubuntu. Процесс деинсталляции включает в себя остановку запущенной службы MySQL, а затем удаление программного обеспечения и связанных с ним зависимостей.
Остановите службу MySQL
Перед деинсталляцией убедитесь, что служба MySQL не запущена. Используйте следующую команду для немедленной остановки службы:
1 | sudo systemctl stop mysql --now |
Удаление MySQL и его зависимостей
Теперь можно приступить к удалению сервера MySQL и всех сопутствующих пакетов, которые больше не нужны. Команда sudo apt autoremove достаточно эффективна для этого:
1 | sudo apt autoremove mysql-community-server |
В качестве альтернативы используйте следующую команду, если вы используете версию Ubuntu:
1 | sudo apt autoremove mysql-server |
Эта команда удаляет сервер MySQL и очищает все неиспользуемые пакеты или зависимости, освобождая системные ресурсы.
Удаление репозитория MySQL 8.0 Community Repository
Если вы больше не собираетесь использовать MySQL и ранее импортировали репозиторий MySQL 8.0 Community Repository, рекомендуется удалить репозиторий из системы. Используйте следующую команду для удаления файла списка MySQL из каталога sources.list.d:
1 | sudo rm /etc/apt/sources.list.d/mysql.list |
Этот шаг гарантирует, что ваша система не будет пытаться проверить репозиторий MySQL на наличие обновлений во время общесистемного обновления, тем самым сохраняя ваши источники APT в рабочем состоянии.
Заключение
Установка, настройка и управление MySQL 8.0 на Ubuntu Linux - это важный навык для любого администратора баз данных, разработчика или технического энтузиаста. Мы рассмотрели широкий спектр тем, начиная с настройки и запуска службы, обеспечения безопасности вашей установки MySQL, и, наконец, обновления и удаления по мере необходимости. Каждый из этих шагов имеет решающее значение для поддержания эффективного, безопасного и современного сервера MySQL на вашей системе Ubuntu.