Как перезапустить mariadb centos 7

Обновлено: 04.07.2024

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

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

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

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

Версия сервера MariaDB в репозиториях CentOS по умолчанию - версия 5.5. Это не последняя версия, но она достаточно стабильна.

Для установки и защиты MariaDB 5.5 в CentOS 7 выполните следующие действия:

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

Нажмите, y когда будет предложено продолжить установку.

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

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

Выходные данные должны показать, что служба активна и работает:

Запустите mysql_secure_installation скрипт, который будет выполнять несколько задач, связанных с безопасностью:

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

Шаги объяснены подробно. Рекомендуется ответить Y (да) на все вопросы.

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

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

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

Первый шаг - включить репозиторий MariaDB. Создайте файл репозитория с именем MariaDB.repo и добавьте следующее содержимое:

Установите серверные и клиентские пакеты MariaDB, используя так yum же, как и другие пакеты CentOS:

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

Введите y и нажмите Enter .

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

Чтобы проверить установку, проверьте статус службы MariaDB, набрав:

Последний шаг - запустить mysql_secure_installation скрипт, который будет выполнять несколько задач, связанных с безопасностью:

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

Все шаги объяснены подробно, и рекомендуется ответить Y (да) на все вопросы.

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

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

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

MySQL - это самая популярная система баз данных, которая используется для обеспечения работы большинства сайтов. Пока вы размещаете свой сайт на хостинге, вам нет необходимости думать о её настройке или своевременной перезагрузке, потому что этим занимаются системные администраторы хостинга. Но когда вы переберётесь на VPS, это всё будет уже в зоне вашей ответственности.

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

Перезапуск MySQL или MariaDB

В большинстве современных дистрибутивов, а особенно тех, что используются для работы серверов, для управления службами применяют Systemd. Именно с её помощью мы будем перезапускать движок баз данных. Ещё один момент, с которым нужно определиться, - это название юнит-файла MySQL. В зависимости от версии и дистрибутива оно может отличаться:

  • mysql-server;
  • mariadb-server;
  • mysql;
  • mariadb;
  • mariadbd
  • mysqld;

Вы можете попробовать использовать эти варианты, чтобы найти тот, что используется в вашей системе; последние версии Ubuntu понимают несколько имен MySQL. Таким образом, для MariaDB и выше перезапуск MySQL Сentos и Ubuntu не отличается. Просто попробуйте узнать состояние сервиса, если вы выбрали правильное название, то увидите что-то вроде этого:

Выполнить частичную перезагрузку только с обновлением конфигурации, так как это делалось в Apache и Nginx вы не сможете. Здесь необходимо полностью перезагружать сервис:

sudo systemctl restart mysql

В некоторых случаях необходимо полностью остановить работающий сервис, а потом запустить его заново. Для этого используем команду stop, затем start:

sudo systemctl stop mysql
sudo systemctl start mysql

Автоматический перезапуск MySQL

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

В systemd есть возможность, которая позволяет делать рестарт MySQL сразу же после того, как он неожиданно завершился. Для этого необходимо добавить такую строчку в конфигурацию юнит-файла MySQL:

Но обратите внимание, что редактировать файлы юнитов в папке /usr нельзя, потому что во время обновления они могут быть перезаписаны, можно только в /etc, и желательно создавать отдельный файл. Можно поступить проще: используйте команду systemctl edit:

sudo systemctl edit mariadb

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

Выводы

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда. Данная статья устарела. Читайте новую актуальную статью по настройке web сервера apache на centos 8.

Данная статья является частью единого цикла статьей про сервер Centos.

Web сервер на CentOS 7

Подопытным сервером будет выступать виртуальная машина от ihor, характеристики следующие:

Процессор 2 ядра
Память 8 Gb
Диск 150 Gb SSD

Это кастомная настройка параметров. Они не оптимальны по цене, но мне были нужны именно такие.

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

Если у вас еще нет сервера, то вам надо выполнить установку CentOS 7. А если сервер уже установлен, то не забудьте его настроить. Рекомендую обратить внимание именно на настройку, так как там много полезной информации, которую в рамках этой статьи я не даю - обновление системы, настройка фаервола, установка редактора и многое другое.

Настройка apache в CentOS 7

Теперь приступим к установке apache. В CentOS 7 это делается очень просто:

Добавляем apache в автозагрузку:

Запускаем apache в CentOS 7:

Проверяем, запустился ли сервер:

установка apache на centos 7

Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:

Создаем подобную структуру:

Перезапуск apache в centos

Теперь делаем restart apache :

Дальше в винде правим файл hosts , чтобы обратиться к нашему виртуальному хосту. Добавляем туда строчку:

где 192.168.1.25 ip адрес нашего веб сервера.

Проверка apache в centos 7

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

Мы добавили одну строку в самое начала файла. Теперь логи всех виртуальных хостов в папке /web будут ротироваться по общему правилу.

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

Установка php в CentOS 7

Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

И следом еще несколько полезных компонентов. Установим популярные модули для php:

Выполним перезапуск apache:

Создадим файл в директории виртуального хоста и проверим работу php:

centos php

Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там.

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для все виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

Добавляем в самый конец, перед </VirtualHost>

Для применения настроек нужно сделать restart apache. Теперь в выводе phpinfo можно увидеть изменение настроек.

Обновление до php 5.6 в CentOS 7

В нашем примере мы установили на CentOS 7 php 5.4 из стандартного репозитория. А что делать, если нам нужна более новая версия, например php 5.6? В таком случае нужно выполнить обновление php.

Теперь обновляем php 5.4 до php 5.6:

centos 7 php 5.6

Отлично, мы обновили php до версии 5.6.

Установка MySQL в CentOS 7

Как я уже писал ранее, сейчас все большее распространение получает форк mysql - mariadb. Она имеет полную совместимость с mysql, так что можно смело пользоваться. Я предпочитаю использовать именно ее.

Устанавливаем mariadb на CentOS 7:

Добавляем mariadb в автозапуск:

Проверяем, запустилась или нет:

Обращаю внимание, что она даже в системе отображается как сервис mysqld . Теперь запускаем стандартный скрипт настройки безопасности:

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

Файл настроек mysql/mariadb лежит в /etc/my.cnf. Для обычной работы достаточно настроек по-умолчанию. Но если вы решите изменить их, не забудьте перезапустить службу баз данных.

Перезапуск mariadb/mysql в CentOS 7:

На этом все. Базовый функционал web сервера на CentOS 7 настроен.

Если вам нужен phpmyadmin воспользуйтесь моим подробным руководством по установке и настройке phpmyadmin на centos 7.

Буду рад замечаниям и комментариям по теме статьи. Напоминаю, что данная статья является частью единого цикла статьей про сервер Centos.

Онлайн курсы по Mikrotik

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

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

Небольшое дополнение - в конце скрипта iptables команда должна быть service iptables save
Без этого после перезагрузки сервера будет сюрприз в виде откатившихся в исходное настроек iptables (возможно эта грабля работает только у RUVDS)

Вы о каком скрипте говорите? Я во всех своих скриптах делаю сохранение правил в /etc/sysconfig/iptables. В Centos из этого файла берутся настройки iptables во время загрузки. Это типовое поведение сервера. Я сотни серверов настраивал на centos и везде это так работает, если специально ничего не менять.

Шаблон может какой-то кастомизированный используют.

Тут что угодно может быть. Прямо указана ошибка - 110: Connection timed out. Невозможно подключиться, соединение отваливается по таймауту. Подключение вот сюда 192.168.0.1:8888 не проходит. Разбирайтесь, почему на этом порту не отвечает apache.

Хорошая статья. Есть одно маленькое замечание. После установки апача было бы правильно намекнуть на фаирвол.

Спасибо автору.
Все шаги на Вашем примере сайта. Это очень продуктивно.
Понимаешь как это работает.
Если что-то не получается, смотри в комментах.

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

Подскажи еще, откуда я рерайчу, чтобы наполнить свой сайт уникальными авторскими статьями :)))

Видимо самоизоляция так пагубно влияет на мозг..
Автору спасибо, отличные маны отличный сайт

Здравствуйте.
В чем разница между
chown -R apache. /web
и
chown -R apache /web
?

Первое аналог команды:
chown -R apache:apache /web
С точкой просто короче запись.

Спасибо! Отличная статья)

На рутрекере выложил готовую виртуалку для ESXI с nextcloud на базе центоси7

Очень полезная статья. Прям все по шагам получилось сделать. Большое спасибо!

Сюда - что бы всем было видно. Прошу прощения, если кому помешал.
Моя ошибка - в правилах iptables(по вышенаписанным статьям), скопировал предыдущее не посмотрев содержание.
открывать порт для сервера нужно правилом в /etc/iptables_rules.sh:
$IPT -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT
а не
$IPT -A INPUT -i $WAN -p udp --dport 80 -j ACCEPT

В этой статье подразумевается, что selinux отключен. Его настройка отдельная история. У меня так и не дошли руки ее описать.

Нашел ошибку. "" Тут каким-то чудным образом порт 80 не вписал! :D
Zerox, спасибо за статьи. Изучаю Linux по ним =)

Какая ошибка в браузере?

На локальном при подключению по адресу: "Сервер не найден" на на компе в сети не удаётся: "получить доступ к сайту"

Ага, Iptables отключил и заработало, хотя вроде настраивал по вашей же статье)

Сделал всё по инструкции, но апач открывает только по ip адресу и то только на локальной машине, по адресу выдаёт ошибку

Дальше логично посмотреть, что за ошибка и подумать, с чем она связана. Заодно посмотреть логи.

На ступени: Перезапуск apache в centos
Ошибка:
[root@localhost

Вроде всё просто и centos 7 minimal читый.
Помогите новичку.

Неправильно настроил сеть. Исправился.

Только хотел написать, что надо сеть проверить :)

А как обновить до последней версии Apache?

Спасибо! Весьма удобное руководство, всё прошло как по маслу. Правда я устанавливал PHP 7.1, наверное, уже есть смысл отредактировать это руководство для установки современной версии PHP.

В самом начале есть ссылка на свежую статью, как раз с php 7.1.

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

Мне тут стала любопытна тема Антивируса на веб-сервере. Linux'у в большинстве плевать на вирусню, но вот веб сервису в частности не очень. Что посоветуете?

Таких антивирусов не существует. Есть некоторые средства для ручной проверки файлов сайта на наличие вирусов, но это не полноценный антивирус. Пример такого скрипта - ai-bolit. Защита веб сервера это комплекс мер. У меня есть в планах написание статьи по настройке максимально защищенного веб сервера, но пока это только планы, даже черновика нет.

Для начала огромное СПАСИБО за статьи! Много полезного и интересного для начинающих линуксоидов. Уже на основе этой статьи запустил чат Mattermost, а также Zabbix. Все работает, но теперь воюю с Nextcloud'ом. Вроде запустился и работает, но хочеться что бы пользователи были не локальные, а Active Directory. Поставил компонент php-ldap и обновил его до версии 5.6. Но Nextcloud'у все равно чего то не хватает, AD видет, а группы и пользователей нет:( говорит чего-то ему не хватает, а чего ХЗ.

К слову, я успешно прикрутил Nexcloud к AD

Это стабильный продукт, его можно в продакшене использовать?

А это предстоит еще проверить)) Он у меня готов к использованию, но пака что я его не запускал в массы.

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

Добрый день.
Подскажите в чём может быть проблема, установил nginx, но когда захожу, то пишет что:

The requested URL /nginx was not found on this server.

я ввожу IP адрес сервера пишет apache настроен(

не обратил внимания ошибка выскочила
Job for nginx.service failed becouse th control process exite with errore code
See "systemctl status nginx.service" and journalctl -xe@ for details

Сам нашел ответ на свой вопрос.
В CentOS 7 по умолчанию в php.ini прописано short_open_tag=Off, нужно было переключить в "on" чтоб заработал php код.

Стесняюсь спросить, какая версия MariaDB у Вас устанавливается представленным способом - бета 10.3 или стабильная 10.2?

Добрый день! Прописал новый путь к сайту, создал файлик site1.conf, но после перезапуска апаче выдаёт ошибку
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
В логах написанно:
ah00170 caught sigwinch, shutting down gracefully.
Подскажите в чём может быть проблема

Гугл выдает много вариантов решения этой проблемы. Предлагаю им воспользоваться. Заочно я все равно ничем не помогу.

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

А есть у вас на сайте как это сделать?

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

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

Здравствуйте. Установил я сначала FreePBX, все у меня заработало. Потом решил установить веб сервер. И получается загвоздка. Теперь через ip я захожу на apache, а на freepbx не могу зайти. Я так понимаю это из-за того, что они находятся на одном порту (*:80).
Как мне теперь настроить, что бы работал и apache и freepbx? Ну это относится и к другим сайтам (Если я создам еще несколько сайтов, то нужно наверное прописывать отдельно каждый сайт). Подскажите пожалуйста

Нужно настраивать виртуальные хосты, каждый сайт, в том числе и freepbx - отдельный виртуальный хост.

Здравствуйте! У Вас статья по установке LAMP на базе CentOS.. Почему выбор пал на данный дистрибутив, почему не Debian?

Там на этапе когда у вас уже можно открыть тестовую страницу апача с 123, нужно было еще открыть 80 порт в iptables, т.к. по умолчанию в 7 centos врядли он будет открыт.
команда:
iptables -I INPUT -p tcp —dport 80 -j ACCEPT
и команда:
iptables-save>/etc/sysconfig/iptables

Я в самом начале дал ссылку на статью с настройкой сервера и сделал акцент, что настройка firewall рассматривается там. А так конечно верно, если не открыть 80-й порт, ничего не заработает.

Здравствуйте, можете мне помочь?
У меня следующая проблема: создал несколько Виртуальных хостов, но при обращение на любой из них открывается дефолтовый сайт bиз этого каталога /var/www/html.
с DNS настройками все правильно.

А чем тут заочно поможешь? Где-то ошибка, виртуальные хосты не работают. Надо внимательно проверить все конфиги.

Скайп есть у Вас?

Подскажите новичку: я установил апач и создал на нем свой сайт - как настроить доступ к нему с других пк в локальной сети без редактирования по отдельности на каждом пк файла hosts?

Только настройкой dns сервера, который обслуживает эти компьютеры. В него надо добавить запись о вашем сайте.

Не подскажете,что делать со следующей проблемкой. По дури решил переустановить mariadb, с удалением каталога /var/lib/mysql В итоге выдается ошибка при запуске,что mkdir не может создать каталог /var/lib/mysql, нет доступа. запускаю от рута. На другом сервере смотрел права, каталог создан группой mysql, пользователь mysql, я вручную создал каталог с такими же правами. В итоге та же ошибка.

Пробовать надо разные варианты. С правами где-то ошибка. Либо на самом каталоге, либо по пути к нему. Создай сам пустой каталог с нужными правами.

А так за мануал спасибо :)

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

Можно вообще сократить мануал и сделать немного поудобнее привязки:

Установка php в CentOS 7
Для поддержки динамического содержимого сайтов выполним следующий шаг. Установим php в CentOS 7:

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

Тогда лучше все убрать, таким сокращением вы убрали важные детали , что указаны в конфиге

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.

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