Перейти к содержимому

Перемещение каталога базы данных 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. В данном руководстве использовалось блочное хранилище, однако эти инструкции подходят для настройки любого устройства независимо от технологии, на которой оно основано.

Опубликовано вБазы данных

Ваш комментарий будет первым

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *