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 через него.
В этой статье я рассмотрю особенности установки, базовой настройки и оптимизации сервера баз данных MariaDB. Передо мной стояла задача установитьc MariaDB и провести базовую настройку на Linux CentOS 7. Так как это актуальный вопрос, я надеюсь статья будет вам полезна. В конце статьи я приведу несколько примеров конфигурационных файлов, а вы с помощью их сможете подобрать параметры под свой сервер.
Установка MariaDB в CentOS
Я привык работать с файлами через редактор nano, устанавливаем его через yum:
yum install nano -y
И открываем файл репозитория для редактирования:
И добавляем туда следующую информацию:
Сохраняем файл и запускаем установку:
yum install MariaDB-server MariaDB-client -y
Установка окончена, теперь нужно добавить сервис в автозагрузку и запустить:
systemctl start mariadb
systemctl enable mariadb
Проверяем статус сервиса:
systemctl status mariadb
Сервис 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
Например, у меня скрипт сразу же выдал, что используемое количество коннектов гораздо меньше, чем я выставил:
Данный параметр можно изменить, как и в файле 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';
В заключении хотелось бы сказать, что при настройке сервера БД нужно опираться на проекты которые будут размещаться на данном сервере. То, что применимо для мелких проектов, в корне может не подойти для крупного проекта. Пробуйте, экспериментируйте и самое важное всегда заглядывайте в логи. В следующей статье мы покажем как организовать высокую доступностьи и увеличить производительность приложений за счет исопльзования репликации между серверами в 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 из репозитория разработчиков. Вы можете получить самую новую, а значит самую быструю версию программы со всеми новыми возможностями. Если у вас остались вопросы, спрашивайте в комментариях!
Установка 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 нас больше не пускают.
А теперь так же находясь под непривилегированным пользователем на запрос пароля введем его:
Отлично, все получилось.
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Читайте также: