Установка MariaDB [MySQL] на Ubuntu Server 18.04

В этой статье мы подробно рассмотрим установку и первоначальную настройку сервера баз данных MariaDB [он же MySQL] на Ubuntu Server 18.04.

Шаг 1. - Подготовка

На этапе подготовки мы убеждаемся что у нас есть всё необходимое для выполнения дальнейшей инструкции:


Шаг 2. - Установка MariaDB

Обновляем список пакетов.

sudo apt update

Устанавливаем mariadb-server и mariadb-client.(Рис.1) Лично у меня ничего не сработало со стандартным репозиторием. :c

sudo apt install mariadb-server mariadb-client
Не удалось найти пакеты mariadb-server и mariadb-client.
Рис.-1 - Не удалось найти пакеты mariadb-server и mariadb-client.

Всё плохо... Значит следует установить другой репозиторий и установить оттуда. Приступаем.

Для добавления репозитория нам понадобится пакет software-properties-common.(Рис.2)

sudo apt install software-properties-common
Устанавливаем пакет software-properties-common.
Рис.2 - Устанавливаем пакет software-properties-common.

Добавляем ключ репозитория.(Рис.3)

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Добавляем ключ репозитория.
Рис.3 - Добавляем ключ репозитория.

Добавляем репозиторий.(Рис.4)

sudo add-apt-repository 'deb [arch=amd64] http://mirrors.supportex.net/mariadb/repo/10.2/ubuntu bionic main'
Рис.16 - Добавляем репозиторий.
Рис.4 - Добавляем репозиторий.

Приступаем к установке mariadb-server и mariadb-client, из только что подключенного репозитория.(Рис.5)

sudo apt -y install mariadb-server mariadb-client
Запускаем установку пакетов mariadb-server и mariadb-client.
Рис.5 - Запускаем установку пакетов mariadb-server и mariadb-client.

В процессе установки появится окно, в котором нужно будет ввести новый пароль root для MariaDB. Вводим и подтверждаем.(Рис.6)

Вводим и подтверждаем пароль root для MariaDB.
Рис.6 - Вводим и подтверждаем пароль root для MariaDB.

Далее ждём пока установится MariaDB. [Приблизительно 1 мин.]

После установки сразу проверим статус MariaDB. (Рис.7)

sudo service mariadb status
Проверяем статус статус MariaDB.
Рис.7 - Проверяем статус статус MariaDB.

У меня MariaDB запустилась сама сразу после установки. [Об этом свидетельствует строчка - "Active: active (running)", также отсутствуют ошибки.]

И MariaDB добавлена в автозагрузку по умолчанию. [Это мы понимаем по слову "enabled;" В строке  "Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; ".]

"Ctrl+C" - выйти из режима просмотра статуса.

Если у вас MariaDB не запустилась, то запустите её командой:

sudo service mariadb start

Если у вас MariaDB не добавилась в автозагрузку, то добавьте её командой:

sudo systemctl enable mariadb

На этом установка MariaDB завершена. Но так же стоит запустить сценарий безопасности, для того чтобы удалить анонимных пользователей и тестовые базы данных.(Рис.8)


Шаг 3. - Запуск сценария безопасности

Вводим команду:

sudo mysql_secure_installation

Вводим текущий пароль root от MariaDB, который мы вводили при установке на Рис.6.

Запускаем сценарий безопасности MariaDB.
Рис.8 - Запускаем сценарий безопасности MariaDB.

Далее нам предлагается Change the root password? [Y/n] - Изменить пароль root.  Я ввел "у" и поменял пароль - [New password:] на более сложный, потом подтвердил пароль[Re-enter new password] и получил сообщение об успешной его смене -  [Password updated successfully!].(Рис.9)

Смена пароля root от MariaDB.
Рис.9 - Смена пароля root от MariaDB.

Далее нам будет задано несколько вопросов, на которые я ответил "y", оно же "yes".(Рис.10)

Так же привёл вам перевод вопросов и информации, которую нам хотят донести разработчики MariaDB, для тех у кого совсем плохо с английским.

Remove anonymous users? [Y/n] - Удалить анонимных пользователей? Я ввел - "у"
... Success![Успех!]

Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.[Как правило, root должен иметь доступ только из «localhost». Эта гарантирует, что кто-то не сможет угадать пароль root из сети.]

Disallow root login remotely? [Y/n] - Запретить вход в систему удаленно? Я ввел - "у"
... Success!

By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.[По умолчанию MariaDB поставляется с базой данных с именем «test», к которой каждый имеет доступ. Она предназначено только для тестирования и должна быть удалена прежде чем перейти в рабочую среду.]

Remove test database and access to it? [Y/n] - Удалить тестовую базу данных? Я ввел - "у"
- Dropping test database...[Удаление тестовой базы данных...]
... Success!
- Removing privileges on test database...[Удаление привилегий в тестовой базе данных...]
... Success!

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.[Перезагрузка таблиц привилегий гарантирует, что все сделанные изменения вступят в силу немедленно.]

Reload privilege tables now? [Y/n] - Обновить таблицы привилегий сейчас? Я ввел - "у"
... Success!

Cleaning up...[Завершение...]

All done! If you've completed all of the above steps, your MariaDB installation should now be secure.[Все сделано! Если вы выполнили все вышеуказанные шаги, ваш сервер MariaDB
теперь должен быть безопасным.]

Thanks for using MariaDB![ - Спасибо, что используете MariaDB!]

Вопросы сценария безопасности.
Рис.10 - Вопросы сценария безопасности.

Шаг 4. - Подключение к MariaDB

Для того чтобы подключиться к MariaDB нужно ввести команду:

mysql -u root -p

После введенного пароля root от MariaDB нас встретит надпись - "Welcome to the MariaDB monitor".(Рис.11)

И тут же мы можем увидеть версию установленного сервера MariaDB - у меня это - "Server version: 10.2.17-MariaDB".

Также в этой консоли MariaDB [(none)]> будут отображаться ошибки сервера в реальном времени.

Для того чтобы выйти из MariaDB monitor введите команду - exit;

exit;
Подключаемся к MariaDB.
Рис.11 - Подключаемся к MariaDB.

Bye... На этом с сервером баз данных MariaDB заканчиваем.


Каталоги и файлы конфигурации MariaDB

/etc/mysql/ - главный каталог MariaDB.

/etc/mysql/my.cnf - главный файл конфигурации MariaDB.

Для того чтобы приступить к редактированию файла my.cnf, с помощью редактора nano, воспользуйтесь командой:

sudo nano /etc/mysql/my.cnf

/var/log/mysql/ - каталог с журналами.


Включаем логи [журналы] MariaDB

Каталог для логов /var/log/mysql, для просмотра его содержимого воспользуйтесь командой(Рис.12):

ls -l /var/log/mysql/
Просмотр содержимого /var/log/mysql.
Рис.12 - Просмотр содержимого /var/log/mysql.

Как видим, по умолчанию, включены только бинарные логи, но для контроля работоспособности и быстрого выявления ошибок сервера MariaDB, необходимо включить главный лог - general_log и лог ошибок - log_error.

Приступим!

Для этого нам придётся отредактировать главный конфигурационный файл - my.cnf:

sudo nano /etc/mysql/my.cnf

в нем нужно найти и раскомментировать строки(Рис.13):

general_log_file = /var/log/mysql/mysql.log
general_log = 1

а так же дописать:

#log_error
log_error = /var/log/mysql/mysql_error.log
Подключаем логи MariaDB.
Рис.13 - Подключаем логи MariaDB.

Сохраняем(Ctrl+o -> Enter) и закрываем(Ctrl+x -> Enter) конфигурационный файл.

И так мы указали, что логи будут писаться в файлы mysql.log и mysql_error.log в директории /var/log/mysql/, но этих файлов там нет, поэтому их следует создать и назначить правильные права.

Создаем файлы mysql.log и mysql_error.log в директории /var/log/mysql:

sudo touch /var/log/mysql/mysql.log
sudo touch /var/log/mysql/mysql_error.log

Назначаем права на чтение и запись - для владельца, а для остальных только чтение:

sudo chmod 644 /var/log/mysql/mysql.log
sudo chmod 644 /var/log/mysql/mysql_error.log

Делаем пользователя mysql владельцем файлов:

sudo chown mysql /var/log/mysql/mysql.log
sudo chown mysql /var/log/mysql/mysql_error.log

На этом настройка журналов закончена, для того чтобы в файлы начали записываться логи, нужно перезапустить MariaDB:

sudo /etc/init.d/mysql restart

Чтения логов с помощью "tail", "tail -10" - выводит последние 10 строк лога, можете подобрать цифру удобную вам:

tail -10 /var/log/mysql/mysql.log
tail -10 /var/log/mysql/mysql_error.log

Часто используемые команды

Управление процессами

Запуск MariaDB:

sudo service mariadb start

или

sudo /etc/init.d/mysql start

Остановка MariaDB:

sudo service mariadb stop

или

sudo /etc/init.d/mysql stop

Перезапуск MariaDB:

sudo service mariadb restart

или

sudo /etc/init.d/mysql restart

Статус MariaDB:

sudo service mariadb status

или

sudo /etc/init.d/mysql status

Убить все процессы MariaDB

[принудительно остановить]

sudo killall -9 mysqld

Автозагрузка

Добавить MariaDB в автозагрузку:

sudo systemctl enable mariadb

Удалить MariaDB из автозагрузки:

sudo systemctl disable mariadb

Читаем логи

Только если вы включали логи по нашей статье в разделе - Включаем логи [журналы] MariaDB

tail -10 /var/log/mysql/mysql.log
tail -10 /var/log/mysql/mysql_error.log

У меня всё!

Поделиться публикацией

Была ли вам полезна статья? Есть возможность поддержать проект.

2
Комментарии

avatar
1 Количество основных комментариев
1 Количество ответов
0 Подписчики комментариев
 
Комментарий с большинством ответов
Горячая тема
2 Количество авторов комментариев
first deer Последние авторы комментариев
  Подписаться на комментарии  
Сначала новые Сначала старые По рейтингу
Уведомление о
Участник
taras

Зачем нужен MariaDB, если есть mySql?