Тайная комната MySQL: Где ваш сервер прячет все данные?
Вы когда-нибудь задумывались, где на самом деле живут все ваши таблицы, пользователи и пароли от MySQL? Не в абстрактном облаке, а физически, на жестком диске сервера. Знание этого — ключ к настоящему контролю над вашей базой данных.
Представьте, что вам срочно нужно сделать бэкап, освободить место на диске или просто понять, куда смотрит СУБД. Стандартный путь известен, но он может быть изменен, и вслепую искать файлы — гиблое дело.
Мы покажем вам, как одной простой командой заставить Ubuntu 20.04 выдать тайное местоположение всех ваших данных. Вы не просто узнаете дефолтный каталог, а научитесь безошибочно находить его в любой конфигурации.
А что, если места на системном диске почти не осталось? Не проблема! Вы узнаете, как перенаправить поток данных в любое другое хранилище всего за несколько шагов: от редактирования конфига до graceful-перезагрузки сервиса.
Перестаньте гадать. Начните управлять. Прочитайте статью, и вы получите четкий план действий для полного контроля над файлами вашей MySQL.
Файлы баз данных в СУБД MySQL хранятся на жёстком диске. По умолчанию все файлы с базами хранятся в директории /var/lib/mysql. Однако это путь можно изменить.
В данной статье будет показано как посмотреть, где хранятся файлы баз данных в СУБД MySQL в операционной системе Ubuntu 20.04.
Где хранятся базы данных MySQL
По умолчанию все файлы с базами хранятся в директории /var/lib/mysql. Однако, чтобы убедиться в этом можно выполнить команду sudo grep -R 'datadir' /etc/mysql/ которая отобразит полный путь до файлов, в которых хранятся базы данных:
sudo grep -R 'datadir' /etc/mysql/

Если перейти по предложенному пути - /var/lib/mysql то в директории будут расположены все необходимые файлы c баз данных. Команду для перехода в директорию необходимо выполнять из-под пользователя root иначе будет ошибка Permission denied:
cd /var/lib/mysql

sudo su
cd /var/lib/mysql
ls -l

Теперь вы знаете где находятся базы данных MySQL. Также можно выполнить команду mysqld с параметрами --verbose и --help которая отобразит путь хранения файлов с базами данных. Данная команда аналогична предыдущей команде.
mysqld --verbose --help | grep ^datadir

Если есть необходимость в изменении пути хранения файлов баз данных, то необходимо открыть конфигурационный файл MySQL от имени суперпользователя (root) при помощи любого текстового редактора. В данном примере, как мы узнали выше, конфигурационный файл находится по пути /etc/mysql/mysql.conf.d/mysqld.cnf. Команда для его редактирования будет выглядеть следующим образом:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

В открывшемся файле необходимо найти блок [mysqld] и в нем параметр с именем datadir в котором можно пописать нужный путь, где будут храниться базы данных. После того как путь был задан необходимо сохранить изменения, закрыть текстовый редактор и перезапустить СУБД при помощи команды:
sudo systemctl restart mysql

Выводы
В данной короткой статье было рассмотрено, где хранятся базы данных в СУБД MySQL. Также при желании можно изменить директорию для хранения. Есть ли у вас опты работы с СУБД MySQL? Расскажите в комментариях!