Содержание статьи:
В этой статье мы подробно рассмотрим установку и первоначальную настройку сервера баз данных MariaDB [он же MySQL] на Ubuntu Server 18.04.
Шаг 1. - Подготовка
На этапе подготовки мы убеждаемся что у нас есть всё необходимое для выполнения дальнейшей инструкции:
- Нам нужна установленная ОС Ubuntu Server 18.04. - Вам в помощь статья - Установка Ubuntu Server 18.04 LTS
- Ubuntu Server 18.04 должна иметь доступ в интернет. - Настройка сети в Ubuntu Server 18.04 [Netplan]
Шаг 2. - Установка MariaDB
Обновляем список пакетов.
sudo apt update
Устанавливаем mariadb-server и mariadb-client.(Рис.1) Лично у меня ничего не сработало со стандартным репозиторием. :c
sudo apt install mariadb-server mariadb-client

Всё плохо... Значит следует установить другой репозиторий и установить оттуда. Приступаем.
Для добавления репозитория нам понадобится пакет software-properties-common.(Рис.2)
sudo apt install software-properties-common

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

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

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

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

Далее ждём пока установится MariaDB. [Приблизительно 1 мин.]
После установки сразу проверим статус MariaDB. (Рис.7)
sudo service mariadb status

У меня 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.

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

Далее нам будет задано несколько вопросов, на которые я ответил "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!]

Шаг 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;

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/

Как видим, по умолчанию, включены только бинарные логи, но для контроля работоспособности и быстрого выявления ошибок сервера 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

Сохраняем(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
У меня всё!
Была ли вам полезна статья? Есть возможность поддержать проект.
Зачем нужен MariaDB, если есть mySql?
хм.. не могу сказать что я шарю в этом вопросе, и то что мой ответ будет тебе полезен... тоже сомневаюсь... Вообще отличия небольшие. MariaDB и MySQL создавались одним человеком, и разработка MariaDB началась после его ухода из MySQL. Большинство Linux-дистрибутивов в своих репозиториях используют MariaDB. Походу из-за лицензирования MariaDB -… Читать далее »
ЭТО крутой сайт! мне очень помогло. Скажу так ? Mysql не рулит и не дружит с современным Apache, на Ubunta 18.04 сервере выдавал всё время глюки с этим самым Mysql , а вот MariaDB ВСТАЛА ка родненькая !!!! Спсб - автору поста !
Привет! Спасибо за статью! Есть вопрос. После запуска сценария безопасности я попытался подключиться к бд (mysql -u root -p), но была ошибка Access denied for user 'root'@'localhost' Эту проблему я смог решить, только залогинившись в системе под рутом. (До этого работал под пользователем, который был создан при установке ubuntu server)… Читать далее »