След като инсталирате компонентите на стека LAMP на сървър CentOS/RHEL 7, може да искате да направите няколко неща.
Някои от тях са свързани с повишаване на сигурността на Apache и MySQL / MariaDB, докато други може да са приложими или не според нашата настройка или нужди.
Например, въз основа на очакваното използване на сървъра на базата данни, може да искаме да променим данните по подразбиране директория (/var/lib/mysql
) на друго място. Такъв е случаят, когато такава директория се очаква да нарасне поради висока употреба.
В противен случай файловата система е /var
се съхранява може да се срине в един момент, причинявайки отказ на цялата система. Друг сценарий, при който промяната на директорията по подразбиране е, когато имаме специален мрежов дял, който искаме да използваме за съхраняване на нашите действителни данни.
Поради тази причина в тази статия ще обясним как да промените директорията с данни MySQL / MariaDB по подразбиране към различен път на сървър на CentOS/RHEL 7 и дистрибуции на Ubuntu/Debian.
Въпреки че ще използваме MariaDB , обяснените концепции и стъпките, предприети в тази статия, се отнасят както за MySQL и към MariaDB освен ако не е посочено друго.
Промяна на директорията с данни MySQL/MariaDB по подразбиране
Забележка :Ще приемем, че новата ни директория с данни е /mnt/mysql-data
. Важно е да се отбележи, че тази директория трябва да бъде собственост на mysql:mysql
.
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
За ваше удобство разделихме процеса на 5 лесни за следване стъпки:
Стъпка 1:Идентифицирайте текущата директория с данни на MySQL
За начало е достойно и добре да идентифицирате текущата директория с данни, като използвате следната команда. Не просто предполагайте, че все още е /var/lib/mysql
тъй като можеше да бъде променен в миналото.
# mysql -u root -p -e "SELECT @@datadir;"
След като въведете паролата за MySQL, изходът трябва да бъде подобен на.
Стъпка 2:Копирайте MySQL Data Directory на ново местоположение
За да избегнете повреда на данните, спрете услугата, ако тя работи в момента, преди да продължите. Използвайте systemd добре познати команди за това:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Ако услугата е била свалена, изходът на последната команда трябва да бъде както следва:
След това копирайте рекурсивно съдържанието на /var/lib/mysql
към /mnt/mysql-data
запазване на оригиналните разрешения и времеви печати:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
Стъпка 3:Конфигурирайте нова MySQL директория с данни
Редактирайте конфигурационния файл (my.cnf
), за да посочите новата директория с данни (/mnt/mysql-data
в този случай).
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
Намерете [mysqld]
и [client]
секции и направете следните промени:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
Запазете промените и след това продължете със следващата стъпка.
Стъпка 4:Задайте контекста за защита на SELinux на директория с данни
Тази стъпка е приложима само за RHEL/CentOS и неговите производни.
Добавете контекста за сигурност SELinux към /mnt/mysql-data
преди да рестартирате MariaDB.
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
След това рестартирайте услугата MySQL.
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
Сега използвайте същата команда като в Стъпка 1 за да проверите местоположението на новата директория с данни:
# mysql -u root -p -e "SELECT @@datadir;"
Стъпка 5:Създайте MySQL база данни, за да потвърдите директорията с данни
Влезте в MariaDB, създайте нова база данни и след това проверете /mnt/mysql-data
:
# mysql -u root -p -e "CREATE DATABASE tecmint;"
Честито! Успешно променихте директорията с данни за MySQL или MariaDB.
Резюме
В тази публикация обсъдихме как да промените директорията с данни в MySQL или MariaDB сървър, работещ на CentOS/RHEL 7 и Ubuntu/Debian дистрибуции.
Имате ли въпроси или коментари относно тази статия? Чувствайте се свободни да ни уведомите, като използвате формата по-долу – винаги се радваме да чуем от вас!