Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да промените директория с данни MySQL/MariaDB по подразбиране в Linux

След като инсталирате компонентите на стека 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 дистрибуции.

Имате ли въпроси или коментари относно тази статия? Чувствайте се свободни да ни уведомите, като използвате формата по-долу – винаги се радваме да чуем от вас!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да инсталирате MySQL на CentOS 6

  2. Вмъкване/актуализиране на помощна функция с помощта на PDO

  3. Предупреждение:mysql_connect():[2002] Няма такъв файл или директория (опитва се да се свърже чрез unix:///tmp/mysql.sock) в

  4. ГРЕШКА 1044 (42000):Отказан достъп за потребител ''@'localhost' до база данни 'db'

  5. Как да изтрия от select в MySQL?