Введение
В этой лабораторной работе мы изучим базовую настройку и использование MySQL, одной из самых популярных систем управления реляционными базами данных (СУРБД) с открытым исходным кодом. MySQL широко используется во многих веб-приложениях и популярных сайтах, работающих с базами данных. К концу этой лабораторной работы вы получите практический опыт проверки установки MySQL, обеспечения безопасности начальной настройки, доступа к оболочке MySQL, а также изучения системных баз данных и таблиц.
Проверка установки MySQL
Для вашего удобства MySQL уже предустановлен в системе. Тем не менее, важно понимать процесс установки. В типичной среде Ubuntu для установки MySQL используются следующие команды:
Следующие команды приведены только для ознакомления. Вам не нужно их запускать, так как MySQL уже установлен в вашей среде.
## DO NOT RUN THESE COMMANDS
sudo apt update
sudo apt install mysql-server -y
Команда apt update обновляет список пакетов, чтобы убедиться, что у вас есть актуальная информация о доступных пакетах. Команда apt install mysql-server -y устанавливает пакет сервера MySQL. Флаг -y используется для автоматического ответа «yes» на любые запросы, которые могут появиться в процессе установки.
Давайте начнем с проверки установки MySQL и его статуса.
Сначала откройте окно терминала, щелкнув по значку терминала на рабочем столе:

Находясь в терминале, выполните следующую команду, чтобы проверить статус MySQL:
sudo service mysql status
Эта команда использует sudo для запуска с правами администратора, что часто требуется для операций системного уровня. Часть service mysql status запрашивает у системы отчет о текущем состоянии службы MySQL.

Вы должны увидеть вывод, указывающий на то, что MySQL остановлен. Это ожидаемо, так как мы еще не запустили службу MySQL.
sudo service mysql start
Подождите несколько секунд, пока служба запустится, а затем снова выполните команду проверки статуса:

Доступ к оболочке MySQL
Теперь давайте получим доступ к оболочке MySQL для выполнения некоторых базовых операций.
Чтобы войти в оболочку MySQL, используйте следующую команду:
sudo mysql -u root
Эта команда использует sudo для запуска с правами администратора. Команда mysql используется для доступа к оболочке MySQL, а флаг -u root указывает, что вы подключаетесь как пользователь root.
В данном случае нет необходимости вводить пароль, так как установка MySQL на виртуальной машине LabEx настроена так, чтобы позволить пользователю root входить без пароля. Это часто встречается в средах разработки, но не должно практиковаться в производственных системах.
Если вход выполнен успешно, вы увидите приветственное сообщение и приглашение MySQL:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
Теперь вы находитесь в оболочке MySQL, где можете выполнять SQL-команды.
Приглашение MariaDB [(none)]> указывает на то, что вы подключены к MariaDB (форку MySQL) и в данный момент не используете какую-либо конкретную базу данных.
Важно отметить, что вы видите MariaDB вместо MySQL. Не волнуйтесь — это не повлияет на вашу способность выполнить эту лабораторную работу или изучить команды MySQL. Вот почему:
- MariaDB — это форк MySQL, созданный оригинальными разработчиками MySQL. Он спроектирован как прямая замена MySQL, что означает полную совместимость с синтаксисом и операциями MySQL.
- MariaDB был создан для обеспечения доступности версии MySQL с открытым исходным кодом. Он поддерживает высокую совместимость с MySQL, предлагая при этом некоторые уникальные функции и улучшения.
- Для целей этой лабораторной работы и большинства базовых и средних операций MySQL вы можете относиться к MariaDB точно так же, как к MySQL. Все команды, которые мы будем использовать в этой работе, работают идентично как в MariaDB, так и в MySQL.
- MariaDB часто считается более легким и быстрым решением, чем MySQL, что делает его отличным выбором для учебных сред, таких как эта. Вы можете заметить более быстрое время отклика, что сделает процесс обучения более комфортным.
- Многие дистрибутивы Linux, включая некоторые версии Ubuntu, теперь используют MariaDB в качестве системы баз данных по умолчанию, совместимой с MySQL, благодаря ее открытости и преимуществам в производительности.
Поэтому, когда вы видите «MariaDB» в приглашении или выводе, просто помните, что для целей этой лабораторной работы вы можете считать это MySQL. Все навыки, которые вы здесь получите, будут напрямую применимы как к MariaDB, так и к MySQL в реальных сценариях.
Изучение системных баз данных
Давайте изучим системные базы данных. Это базы данных, которые предустановлены вместе с MySQL и содержат важную информацию о самом сервере MySQL.
Если вы все еще находитесь в оболочке MySQL из шага 2, сначала выйдите обратно в обычный терминал:
EXIT;
Теперь выполните следующую команду в терминале:
sudo mysql -u root -e "SHOW DATABASES;" | tee /home/labex/project/system_databases.txt
Опция -e указывает MySQL выполнить SQL-инструкцию непосредственно из терминала. Команда tee сохраняет копию вывода в файл /home/labex/project/system_databases.txt, что позволяет легко просмотреть результат позже.

Эта команда выводит список всех баз данных, присутствующих на вашем сервере MySQL. Вы должны увидеть вывод, похожий на этот:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
Давайте разберем, что это за базы данных:
information_schema: база данных, предоставляющая доступ к метаданным баз данных.mysql: база данных, содержащая информацию, необходимую серверу MySQL для его работы.performance_schema: база данных, предоставляющая способ проверки внутреннего выполнения сервера во время работы.sys: база данных, содержащая набор объектов, которые помогают администраторам баз данных и разработчикам интерпретировать данные, собранныеperformance_schema.
В этой лабораторной работе мы сосредоточимся на базе данных mysql. Выполните следующую команду в терминале, чтобы вывести список таблиц в этой базе данных и сохранить результат:
sudo mysql -u root -e "USE mysql; SHOW TABLES;" | tee /home/labex/project/mysql_tables.txt
Вы увидите длинный список таблиц. Эти таблицы хранят различные конфигурационные и операционные данные для MySQL.
Изучение данных в системных таблицах
Теперь, когда мы увидели системные таблицы, давайте изучим данные в одной из них. Таблица user в базе данных mysql содержит информацию об учетных записях пользователей MySQL.
Снова подключитесь к оболочке MySQL:
sudo mysql -u root
После появления приглашения MariaDB [(none)]> переключитесь на базу данных mysql:
USE mysql;
Выполните следующую команду, чтобы увидеть структуру таблицы user:
DESCRIBE user;
Это покажет вам все столбцы в таблице user. Вы увидите много столбцов, так как эта таблица содержит подробную информацию о каждом пользователе MySQL.
Теперь давайте посмотрим на некоторые данные в этой таблице. Мы сосредоточимся на нескольких ключевых столбцах:
SELECT User, Host, Password_expired FROM user;
Этот запрос выбирает три важных столбца из таблицы user:
User: имя пользователя учетной записи MySQLHost: хост, с которого этому пользователю разрешено подключатьсяPassword_expired: истек ли срок действия пароля
Вы должны увидеть вывод, похожий на этот:
+-------------+-----------+------------------+
| User | Host | password_expired |
+-------------+-----------+------------------+
| mariadb.sys | localhost | Y |
| root | localhost | N |
| mysql | localhost | N |
+-------------+-----------+------------------+
3 rows in set (0.001 sec)
Этот вывод показывает нам учетные записи пользователей MySQL, существующие в системе. Пользователь root является основной административной учетной записью, в то время как остальные — это системные учетные записи, используемые MySQL для различных целей.
Чтобы выйти из оболочки MySQL, введите:
EXIT;
Это вернет вас к обычному приглашению терминала.
Резюме
В этой лабораторной работе мы рассмотрели основные шаги по работе с MySQL на виртуальной машине LabEx. Мы проверили установку MySQL, обеспечили безопасность начальной настройки, получили доступ к оболочке MySQL, изучили системные базы данных и проанализировали данные в системных таблицах.
Мы научились:
- Проверять и управлять статусом службы MySQL
- Получать доступ к оболочке MySQL
- Просматривать системные базы данных
- Изучать таблицы внутри системных баз данных
- Запрашивать данные из системных таблиц
Эти фундаментальные навыки составляют основу для более сложных задач по управлению базами данных. Продолжая свое обучение работе с MySQL, вы будете опираться на эти основы для создания собственных баз данных, написания сложных запросов и интеграции MySQL с различными приложениями. Помните, что практика — ключ к мастерству в управлении базами данных, поэтому не стесняйтесь экспериментировать с различными командами и глубже изучать возможности MySQL.



