Mariadb настройка centos 7

Обновлено: 06.07.2024

Если вам по какой-либо причине необходимо установить MySQL, ознакомьтесь с руководством по установке MySQL на CentOS 7 . Если ваше приложение не имеет каких-либо особых требований, вам следует придерживаться MariaDB, системы баз данных по умолчанию в CentOS 7.

В этом руководстве мы покажем вам, как установить последнюю версию MariaDB на CentOS 7, используя официальные репозитории MariaDB.

Подготовка

Прежде чем продолжить обучение, убедитесь, что вы вошли в систему как пользователь с правами sudo .

Установите MariaDB 5.5 на CentOS 7

Выполните следующие действия, чтобы установить и защитить MariaDB 5.5 на CentOS 7:

    Установите пакет MariaDB с помощью диспетчера пакетов yum:

Вам будет предложено установить пароль пользователя root, удалить учетные записи анонимных пользователей, ограничить доступ пользователя root к локальному компьютеру и удалить тестовую базу данных.

Установите MariaDB 10.3 на CentOS 7

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

Чтобы установить MariaDB 10.3 на CentOS 7, выполните следующие действия:

Yum может предложить вам импортировать GPG-ключ MariaDB:

Сценарий предложит вам установить пароль пользователя root, удалить анонимного пользователя, ограничить доступ пользователя root к локальному компьютеру и удалить тестовую базу данных.

Подключитесь к MariaDB из командной строки

Чтобы подключиться к серверу MariaDB через терминал в качестве учетной записи root:

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

После ввода пароля вам будет представлена оболочка MariaDB, как показано ниже:

Выводы

В этом руководстве мы показали вам, как установить и защитить MariaDB на сервере CentOS 7.

Теперь, когда ваш сервер MariaDB запущен и работает, и вы знаете, как подключиться к серверу MariaDB из командной строки, вы можете проверить следующие руководства:

Если вы предпочитаете веб-интерфейс командной строке, вы можете установить phpMyAdmin и управлять своими базами данных MariaDB через него.

date

11.11.2019

directory

CentOS, Linux

comments

комментария 3

В этой статье я рассмотрю особенности установки, базовой настройки и оптимизации сервера баз данных MariaDB. Передо мной стояла задача установитьc MariaDB и провести базовую настройку на Linux CentOS 7. Так как это актуальный вопрос, я надеюсь статья будет вам полезна. В конце статьи я приведу несколько примеров конфигурационных файлов, а вы с помощью их сможете подобрать параметры под свой сервер.

установка и настройка mariadb в linux centos

Установка MariaDB в CentOS

Я привык работать с файлами через редактор nano, устанавливаем его через yum:

yum install nano -y

И открываем файл репозитория для редактирования:

И добавляем туда следующую информацию:

Сохраняем файл и запускаем установку:

yum install MariaDB-server MariaDB-client -y

Установка окончена, теперь нужно добавить сервис в автозагрузку и запустить:

systemctl start mariadb
systemctl enable mariadb

Проверяем статус сервиса:

systemctl status mariadb

systemctl status mariadb - проверка службы в linux centos

Сервис mariadb запущен и работает, значит можно продолжить настройку.

Защита и безопасность MariaDB

После того, как мы установили и запустили MariaDB, можем перейти к настройкам безопасности. Запускаем встроенный сценарий:

Данный сценарий подробно описывает каждый шаг и подробно останавливаться на каждом из них мы не будем. Сначала он запросит root-пароль, но после начальной установки его нет и поэтому мы нажимаем enter и на следующем этапе задаем сложный пароль (от этого зависит насколько безопасным, будет ваш сервер). После можно до конца выполнения сценария нажимать «enter», в процессе будут удалены анонимные пользователи, удаленный root-логин, а также тестовые таблицы и будут перезагружены привилегии.

Для подключения к mariadb серверу нужно создать правила в Linux файерволе с помощью iptables:

iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables

Опционально, можно разрешить исходящие подключения к другим базам MariaDB.

iptables -I OUTPUT -p tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT

Проверка соединения с сервером MariaDB

Нужно убедиться, что установка MariaDB выполнена успешно.

Подключимся к серверу БД с помощью встроенного инструмента mysqladmin:

Команда выдаст результат:

Это означает, что установка MariaDB выполнена успешно, база данных работает и доступна.

Можно подключиться к консоли сервера maridb для интерактивного выполнения sql команд:

Настройка конфигурационного файла MariaDB

Обычно после установки MariaDB я добавляю в конфигурационный файл /etc/my.cnf свою стандартную конфигурацию, которая работает на большем количестве серверов и пока проблем с базами не возникало. Очистим файл my.cnf и добавим в него следующее:

Для общего понимания разберем основные параметры конфигурационного файла my.cnf:

Оптимизация и тюнинг производительности MariaDB

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

Установим скрипт Tuning-Primer.sh:

yum install bc net-tools -y

chmod +x tuning-primer.sh

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

тюнинг mariadb с помощью Tuning-Primer.sh

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


С помощью подобных манипуляций можно привести к идеалу работу вашего сервера БД.

Хочу заметить, что рекомендованное непрерывное время работы сервера БД не менее 48 часов, тогда информация будет более точной и на основе этого вам нужно будет провести тюнинг.

К моему конфигурационному файлу, можно добавить секцию для активации журнала медленных запросов, это поможет вам анализировать работу ваших проектов. В секцию «mysqld» добавляем:

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

touch /var/log/mysql-error.log
touch /var/log/slow-query.log

Делаем рестарт сервиса:

systemctl restart mariadb

Просмотреть журнал медленных запросов можно открыв файл /var/log/slow-query.log или же проверять его в режиме реального времени:

tail -f /var/log/slow-query.log

Таким образом вы можете анализировать запросы к БД вашего проекта и на основе этого проводить аудит.

После любых изменений настроек БД нужно проверять конфигурацию на наличие ошибок:

Обязательно после всех работ с настройкой баз данных выполняйте проверку статуса на предмет ошибок выполняя команду:

systemctl status mariadb -l

Основные команды для работы в консоли MariaDB

Ниже приведены основные команды cli, которые чаще всего приходится использовать администратору при работе в консоли maridb.

Для локального входа в консоль MariaDB, выполните:

Для удаленного подключения к серверу БД MariaDB:

mysql -u root -p -h 10.1.1.20

show status where `variable_name` = 'Threads_connected';

Так же из консоли mysql можно просматривать или изменять параметры, например:

SHOW VARIABLES LIKE 'max_error_count';

mariadb cli SHOW VARIABLES

mariadb cli set VARIABLES

В заключении хотелось бы сказать, что при настройке сервера БД нужно опираться на проекты которые будут размещаться на данном сервере. То, что применимо для мелких проектов, в корне может не подойти для крупного проекта. Пробуйте, экспериментируйте и самое важное всегда заглядывайте в логи. В следующей статье мы покажем как организовать высокую доступностьи и увеличить производительность приложений за счет исопльзования репликации между серверами в MariDB.

Как вы знаете, несколько лет назад разработка программного обеспечения для организации баз данных MySQL разделилась. У программы появилось две версии - оригинальная MySQL от компании Oracle и новая - MariaDB, разрабатываемая создателем MySQL и сообществом. Версия от сообщества быстро обогнала оригинальную версию по возможностям и оптимизациям и сейчас используется в большинстве дистрибутивов Linux по умолчанию.

В этой статье мы рассмотрим как выполняется установка MariaDB CentOS 7, на данный момент самая новая стабильная версия - MariaDB 10.2, именно ее мы будем устанавливать.

Установка MariaDB Centos 7

К сожалению, сейчас в репозиториях CentOS есть только версия 5.5, у нее ниже производительность и не поддерживаются такие возможности, как полнотекстовый поиск по строкам в InnoDB. Поэтому мы будем использовать официальный репозиторий разработчиков. По ссылке доступен конструктор репозитория, в котором вам нужно выбрать дистрибутив, его версию и версию программы:

Затем, внизу появится код, который нужно вставить в файл /etc/yum.repos.d/Mariadb.repo:

sudo vi /etc/yum.repos.d/Mariadb.repo

Если установлена старая версия MariaDB - остановите ее:

sudo systemctl stop mariadb

Затем обновите список пакетов:

sudo yum update

Если в вашей системе уже установлена более старая версия, то обновление будет выполнено автоматически. Или установка mariadb centos 7:

sudo yum install MariaDB-server MariaDB-client

Во время установки вам придется принять ключ GPG для репозитория MariaDB.

Настройка MariaDB

Установка завершена, и теперь нам предстоит заняться настройкой программы. Сначала запустите сервис:

sudo systemctl start mariadb

Если вы получаете ошибку, что файл /usr/libexec/mariadb-prepare-db-dir не существует, то выполните команду:

Это вызвано тем, что вы изменяли стандартный unit файл systemd и из-за этого он не был заменен на новый, когда мы удаляем этот файл вместо него подтягивается новый и все будет работать. Если у вас уже была раньше установлена версия MariaDB, то нужно запустить команду mysql_upgrade чтобы обновить все существующие таблицы:

На этом база будет готова. Если же это новая установка, то нужно выполнить скрипт mysql_secure_installation чтобы защитить базу данных от злоумышленников:

На первом шаге вам нужно задать пароль root, по умолчанию пароль не задан:


Затем удалите анонимных пользователей:


Запретите удаленный вход для root:


Удалите тестовую базу данных и обновите таблицу привилегий:



Создание базы данных MariaDB

Последнее, что нам осталось - это создать базу данных и пользователя, которые вы сможете использовать. Для подключения к базе используйте команду mysql:

Создайте базу данных:

mysql> CREATE DATABASE first-database;
mysql> CREATE USER 'dbuser'@'localhost' identified by 'password';
mysql> GRANT ALL ON first-database.* TO dbuser' IDENTIFIED 'password';
mysql> FLUSH PRIVILEGES;

Теперь вы можете подключится от имени этого пользователя через терминал или используя Phpmyadmin:

mysql -u dbuser -p

Настройка mariadb CentOS 7 завершена.

Удаление MariaDB

Если вы хотите удалить самую новую версию и вернуться к более старой, из официальных репозиториев - вам нужно сначала удалить файл репозитория:

sudo rm /etc/yum.repos.d/Mariadb.repo

Затем выполнить обновление системы:

sudo yum update

Или же вы можете полностью удалить MariaDB, но в таком случае будет удалена база данных из /var/lib/mysql, а значит вы потеряете все данные, которые там были:

sudo yum remove MariaDB-server MariaDB-client

Выводы

В этой небольшой статье мы рассмотрели как установить mariadb centos 7 из репозитория разработчиков. Вы можете получить самую новую, а значит самую быструю версию программы со всеми новыми возможностями. Если у вас остались вопросы, спрашивайте в комментариях!


9 Июл 2021 18:07:09 | 0 comments

Установка MariaDB 10.6 на CentOS 7

06 июля 2021 года, ровно через 1 год после релиза MariaDB 10.5 вышла первая стабильная версия здесь.

Давайте попробуем установить новую версию на чистую систему CentOS 7.

Полный список изменений в MariaDB 10.6.3 Вы можете найти на этой странице.

2. Добавление репозитория MariaDB

P.S. Для любителей все делать руками есть удобный портал, где можно более гибко выбрать нужный репозитарий в зависимости от географического положения вашего сервера.

3. Установка последней версии MariaDB 10.6.x

4. Запуск MariaDB

Добавим запуск MariaDB при старте ОС:

После запуска проверим статус работы MariaDB:

ВАЖНО! Обратите внимание на то, что MariaDB принимает соединения на всех сетевых интерфейсах. Если Ваш сервер имеет внешний белый IP адрес, то есть доступен через Интернет, то и MariaDB так же может быть доступна через Интернет, что может быть довольно опасным.

Чтобы в дальнейшем избежать проблем с неконтролируемым доступом я рекомендую настроить firewall на Вашем сервере и ограничит доступ на порт 3306 или перенастроить MariaDB так, чтобы она открывала порт только на localhost (127.0.0.1).

Чуть ниже (в п.5) мы настроим безопасность MariaDB.

Пока давайте попробуем подключиться к БД с помощью команды mariadb:

Мы успешно подключились к серверу MariaDB.

5. Настройка безопасности MariaDB

Очень важно выполнить этот пункт, а особенно задать очень сложный пароль пользователя root, т.к. по умолчанию MariaDB принимает сетевые соединения на всех сетевых интерфейсах и если Ваш сервер смотрит в интернет портом 3306, то неправильная настройка безопасности может стать причиной взлома базы данных.

Обратите внимание, что раньше скрипт настройки назывался mysql_secure_installation, начиная с 10.6 он называется mariadb-secure-installation
Запускаем мастер настройки:

На вопрос:
Enter current password for root (enter for none):
нажимаем Enter, текущий пароль root у нас пустой.

Далее вопрос:
Change the root password? [Y/n]
вводим Y, да мы хотим поменять пароль root
и далее придумываем СЛОЖНЫЙ пароль root

Далее вопрос:
Remove anonymous users? [Y/n]
вводим Y, мы хотим удалить анонимного пользователя.

Далее вопрос:
Disallow root login remotely? [Y/n]
вводим Y, да мы хотим запретить подключаться под пользователем root с удаленных машин.

Далее вопрос:
Remove test database and access to it? [Y/n]
вводим Y, да мы хотим удалить тестовую базу test

И последний вопрос:
Reload privilege tables now? [Y/n]
вводим Y, да мы хотим перезагрузить таблицу привилегий для вступления их в силу.

После этого мы выполнили минимальные меры по защите нашего экземпляра MariaDB.

Теперь настроим MariaDB чтобы она принимала соединения только на интерфейсе localhost (127.0.0.1), для этого откроем файл /etc/my.cnf.d/server.cnf и в секции [mysqld] пропишем bind-address=127.0.0.1

Часть файла конфигурации /etc/my.cnf.d/server.cnf:

После этого перезапустим MariaDB:

Проверим на каких интерфейсах MariaDB принимает соединения:

Отлично, то что нужно!

Теперь проверим, что под root с пустым паролем нас не пустят нам нужно залогиниться под непривилегированным пользователем и попробовать выполнить (когда у нас спросят пароль root, мы нажмем Enter, тем самым пароль будет пустым):

Как мы видим с пустым паролем root нас больше не пускают.

А теперь так же находясь под непривилегированным пользователем на запрос пароля введем его:

Отлично, все получилось.

На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.

Читайте также: