diff --git a/docs/docker-compose/motioneye.md b/docs/docker-compose/motioneye.md old mode 100644 new mode 100755 diff --git a/docs/docker-compose/redis.md b/docs/docker-compose/redis.md old mode 100644 new mode 100755 diff --git a/docs/ubuntu/mariadb.md b/docs/ubuntu/mariadb.md new file mode 100644 index 0000000..ca9da3c --- /dev/null +++ b/docs/ubuntu/mariadb.md @@ -0,0 +1,173 @@ +# Установка MariaDB на Ubuntu Server 22 + +[MariaDB](https://mariadb.org/) — это система управления реляционными базами данных с открытым исходным кодом, обычно используемая в качестве альтернативы MySQL. + +Краткая версия этого руководства по установке состоит из следующих трех шагов: + +- Обновите индекс вашего пакета, используя`apt` +- Установите `mariadb-server`пакет с помощью `apt`. Пакет также включает соответствующие инструменты для взаимодействия с MariaDB. +- Запустите включенный `mysql_secure_installation`скрипт безопасности, чтобы ограничить доступ к серверу + +```bash +sudo apt update +sudo apt install mariadb-server +sudo mysql_secure_installation +``` + +Далее я распишу подробнее все шаги и как проверить, что база работает и имеет безопасную конфигурацию. + +## Шаг 1 — Установка MariaDB + +На момент написания этой статьи репозитории APT по умолчанию в Ubuntu 22.04 включают версию MariaDB 10.11.4 + +Чтобы установить его, обновите индекс пакета на вашем сервере с помощью `apt`: + +```bash +sudo apt update +``` + +Затем установите пакет: + +```bash +sudo apt install mariadb-server +``` + +Эти команды установят MariaDB, но не предложат установить пароль или внести какие-либо другие изменения в конфигурацию. Поскольку конфигурация по умолчанию оставляет вашу установку MariaDB небезопасной, вы будете использовать сценарий, предоставляемый пакетом, `mariadb-server`для ограничения доступа к серверу и удаления неиспользуемых учетных записей. + +## Шаг 2 — Настройка MariaDB + +Далее запускаем предлагаемый сценарий настройки безопасности. Этот сценарий изменяет некоторые из менее безопасных параметров по умолчанию для таких вещей, как удаленный вход в систему **root** и пользователей. + +Запустите скрипт безопасности: + +```bash +sudo mysql_secure_installation +``` + +После ввода команды, сценарий установки задаст несколько вопросов, позволяющих внести изменения в параметры безопасности MariaDB. +Первый вопрос просит ввести пароль **root** базы данных. Так как это чистая установка, нажимаем `ENTER`, чтобы указать нет + +``` +NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB + SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! + +In order to log into MariaDB to secure it, you'll need the current +password for the root user. If you've just installed MariaDB, and +you haven't set the root password yet, the password will be blank, +so you should just press enter here. + +Enter current password for root (enter for none): +``` +Далее запрос на переключение авторизации сокетов unix. У нас есть уже защищенная учетная запись **root**, поэтому пропускаем этот шаг и нажимаем `n`, а затем `ENTER` + +``` +. . . +Setting the root password or using the unix_socket ensures that nobody +can log into the MariaDB root user without the proper authorisation. + +You already have your root account protected, so you can safely answer 'n'. + +Switch to unix_socket authentication [Y/n] n +``` +Следующий блок спрашивает, установить ли пароль **root** для базы данных. В Ubuntu **корневая** учетная запись для MariaDB тесно связана с обслуживанием системы, поэтому не следует изменять настроенные методы аутентификации для этой учетной записи. Вводим `n`, а затем нажимаем `ENTER`. + +``` +. . . +OK, successfully used password, moving on... + +Setting the root password ensures that nobody can log into the MariaDB +root user without the proper authorisation. + +Set root password? [Y/n] n +``` + +Позже вы узнаете, как настроить дополнительную учетную запись администратора для доступа по паролю, если аутентификация через сокет не подходит для использования. + +> Если же нужно настроить пароль для учетной записи **root**, то +> необходимо выполнить эти команды в **MariaDB**: +> +> `mariadb; > ALTER USER 'root'@'localhost' IDENTIFIED BY +> 'MyN3wP4ssw0rd'; flush privileges; exit; ` + +На все последующие вопросы отвечаем `Y`, а затем `ENTER`, чтобы принять значения по умолчанию. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленный вход в **систему root** и загрузит эти новые правила, чтобы MariaDB немедленно реализовала внесенные изменения. + +На этом мы завершили первоначальную настройку безопасности MariaDB. Далее я распишу, что нужно сделать, чтобы аутентифицироваться на своем сервере MariaDB с помощью пароля. + +## Шаг 3 — (Необязательно) Создание пользователя-администратора, использующего аутентификацию по паролю + +Теперь создадим отдельную учетную запись с правами **root** для доступа на основе пароля. +Открываем командную строку MariaDB с вашего терминала: + +```bash +sudo mariadb +``` +Затем создаем нового пользователя с привилегиями **root** и доступом на основе пароля. + +> Не забываем изменить имя пользователя и пароль на те, что нужны + +```sql +GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; +``` + +Сбрасываем привелегии, чтобы убедиться, что они сохранены и доступны в текущем сеансе: + +```sql +FLUSH PRIVILEGES; +``` + И выходим из оболочки MariaDB: + +```sql +exit +``` + +Теперь протестируем установку MariaDB. + +## Шаг 4 — Тестирование MariaDB + +При установке из репозиториев по умолчанию MariaDB запустится автоматически. Чтобы проверить это, проверим статус. + +```bash +sudo systemctl status mariadb +``` +Вывод будет примерно таким: + +``` +● mariadb.service - MariaDB 10.11.4 database server + Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) + Drop-In: /etc/systemd/system/mariadb.service.d + └─migrated-from-my.cnf-settings.conf + Active: active (running) since Fri 2023-06-09 22:54:09 +05; 13h ago + Docs: man:mariadbd(8) + https://mariadb.com/kb/en/library/systemd/ + Main PID: 416609 (mariadbd) + Status: "Taking your SQL requests now..." + Tasks: 8 (limit: 4571) + Memory: 78.4M + CPU: 8.879s + CGroup: /system.slice/mariadb.service + └─416609 /usr/sbin/mariadbd +``` + +Если MariaDB не запущена, можно запустить ее с помощью команды `sudo systemctl start mariadb`. + +Для дополнительной проверки, можно попробовать подключиться к базе данных с помощью инструмента `mysqladmin`, который представляет собой клиент, позволяющий выполнять административные команды. +Например, эта команда предлагает подключиться к MariaDB от имени **пользователя root** , используя сокет Unix, и вернуть версию: + +``` +sudo mysqladmin version +``` + +Вывод: + +``` +mysqladmin Ver 9.1 Distrib 10.11.4-MariaDB, for debian-linux-gnu on x86_64 +Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. + +Server version 10.11.4-MariaDB-1:10.11.4+maria~ubu2210 +Protocol version 10 +Connection Localhost via UNIX socket +UNIX socket /run/mysqld/mysqld.sock +Uptime: 14 hours 17 min 25 sec + +Threads: 1 Questions: 76 Slow queries: 0 Opens: 33 Open tables: 26 Queries per second avg: 0.001 +``` \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 5d896b2..245b74c 100755 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -16,7 +16,8 @@ nav: - Plex Meta Manager: docker-compose/plex-mm.md - Traefik: - Traefik Forward Auth: docker-compose/traefik-forward-auth.md - #- Hardware: + - :Ubuntu: Ubuntu 22: + - MariaDB: ubuntu/mariadb.md - Помойка: - SSL для сайта: other/ssl-for-site.md - Ubuntu bash aliases: other/ubuntu-bash-aliases.md