7 апреля 2021

Перемещение каталога базы данных MARIADB В Oracle Linux 8

Объём базы данных увеличивается, и со временем она исчерпывает пространство файловой системы. Кроме того, если ввод и вывод находится на одном разделе с остальной частью операционной системы, возможные конфликты доступа к устройствам ввода/вывода. RAID, сетевые блочные хранилища и другие устройства предоставляют избыточность данных и другие полезные функции. Если вы хотите добавить больше места и оптимизировать производительность, а также воспользоваться другими функциями хранения, это руководство поможет вам переместить каталог данных MariaDB.

Перемещение каталога данных MariaDB

Чтобы подготовиться к перемещению каталога данных MariaDB, нужно уточнить его текущее местонахождение. Для этого откройте интерактивную сессию MariaDB и укажите учётные данные администратора.

Укажите root-пароль MariaDB. В командной строке запросите каталог данных:

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

Чтобы обеспечить целостность данных, отключите MariaDB, прежде чем вносить изменения в каталог данных:

Утилита systemctl не отображает результаты некоторых команд управления сервисами. Чтобы убедиться в том, что сервер MariaDB отключен, используйте следующую команду:

Последняя строка вывода должна сообщать:

Теперь, когда сервер отключен, скопируйте текущий каталог данных в новое место с помощью rsync. Флаг –a сохраняет привилегии и другие свойства каталога. Флаг –v предоставляет подробный вывод.

Примечание: Убедитесь, что в названии каталога нет конечной косой черты (который система может добавить, если вы используете автодополнение). Если такой слеш есть, rsync будет сбрасывать содержимое каталога в точку монтирования, а не в каталог.

Настройка нового каталога данных

MariaDB предлагает несколько способов отмены значений конфигурации. По умолчанию datadir настроен в файле /etc/my.cnf в каталоге /var/lib/mysql. Откройте этот файл:

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

Теперь нужно добавить в настройки клиент mysql. Вставьте в конец файла следующие строки (в блок [mysqld] перед строкой include).

Чтобы закрыть и сохранить файл, нажмите Escape, а затем :wq!.

Запуск MariaDB

Теперь нужно запустить MariaDB и запросить состояние сервера, чтобы убедиться, что все работает.

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

Запросите каталог данных:

Чтобы закрыть командную строку, введите:

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

Контекст SELinux для MySQL

Используйте команду ls -Z для просмотра контекста SELinux. Перед тем как перейти в каталог, следующий контекст SELinux был на моей базе данных MySQL.

Как вы видите здесь, mysqld_db_t является SELinux тип контекста.

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

Примечание: Если вы сделали копию каталога (вместо переноса), вы заметите, что он изменился. В этом случае, изменение контекста SELinux, как описано ниже.

Когда контекст SELinux неправильно, вы увидите следующее сообщение об ошибке (или что-то похожее на это) в журнале log(или /var/log/messages)

Кроме того, вы увидите следующее в файле mysqld.log, когда базу данных MySQL не удастся запустить.

Установка SELinux для MySQL на CentOS / RedHat

С помощью команды chcon, вы можете изменить тип контекста SELinux в новом каталоге, как показано ниже.

В приведенной выше команде:

  • chcon это команда для изменения контекста SELinux
  • Опция -R будет рекурсивно изменить контекст для данного каталога и в вспомогательном каталоге.
  • Опция -t используется для указания типа контекста SELinux, который должен быть установлен. В этом примере, мы устанавливаем его тип mysqld_db_t.
  • /srv/mysql является каталог, на котором будет выполняться эта команда.

Примечание: Начало изменения контекста из каталога верхнего уровня /data (а не из каталога MySQL), который будет включать в себя каталог MySQL и все подкаталоги и файлы.

Параметр сокета клиента MySQL

После указанного изменения, вы могли бы получать это сообщение об ошибке при подключении от клиента mysql:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

Если это произойдет, передайте параметр -socket клиенту MySQL, и укажите его в файле mysql.sock, который находится в новом каталоге.

Если вы заходите в клиент MySQL локально, вы можете также использовать опцию -h и передать 127.0.0.1, как показано ниже. Это также позволит избежать появления сообщения об ошибке mysql.sock.

Так же возможно придется изменить параметр php:

Заключение

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

Метки: ,

Опубликовано 07.04.2021 от evgeniyalf в категории "Базы данных