Где хранятся базы данных mysql
Перейти к содержимому

Где хранятся базы данных mysql

  • автор:

Как узнать путь до файлов базы данных MySQL/MariaDB в Linux и Windows

Файлы базы MySQL/MariaDB данных хранятся на жёстком диске. По умолчанию это папка data внутри директории исполнимых файлов MySQL (в Windows) или в директории /var/lib/mysql/ (Linux).

В настройках можно указать любое расположение базы данных MySQL — необязательно в папке с установленной программой, это может быть произвольная папка. Более того, на серверах с высокой нагрузкой рекомендуется файлы баз данных выносить на отдельный диск, чтобы не снижалась производительность из-за одновременного доступа к диску для чтения баз данных и для запуска исполнимых файлов.

Иногда непросто разобраться в сложной структуре веб-сервера, иногда нужно в скрипте реализовать возможность определять путь до файлов баз данных — например, в целях настройки автоматического резервного копирования.

Далее будет показано, как в командной строке можно определить, где расположены файлы баз данных MySQL в Windows и в Linux.

Определение пути без подключения к серверу СУБД

В Windows

В ОС Windows для получения пути до базы данных введите команду:

.\mysqld --verbose --help | findstr /b "datadir"
datadir c:\Server\data\DB\data\

Если вы получите сообщение, что команда mysqld не найдена, значит нужно указать путь до исполнимого файла mysqld или перейти в директорию с исполнимым файлом. Предположим, MySQL/MariaDB установлена в папке C:\Server\bin\mariadb, тогда переходим в поддиректорию bin, содержащую исполнимые файлы, и выполняем там указанную выше команду:

cd C:\Server\bin\mariadb\bin .\mysqld --verbose --help | findstr /b "datadir"

В Linux

В операционной системе Linux выполните следующую команду и она покажет вам путь до базы данных:

mysqld --verbose --help | grep ^datadir

Переменная @@datadir;

Этот способ работает на всех системах одинаково. Нужно выполнить подключение к системе управления базой данных. Например, для пользователя root это делается так:

mysql -u root -p

И затем в консоли MySQL/MariaDB выполните:

select @@datadir;

Как видно на скриншоте, путь до файлов базы данных на сервере, где введена команда, c:\Server\data\DB\data\.

Ещё один вариант выполнения данной команды:

mysql -u root -p -e "select @@datadir;"

Как узнать настройки директорий в MySQL/MariaDB

Чтобы показать информацию о всех настройках директорий СУБД сервера, выполнит команду:

mysql -u root -p -e "SHOW VARIABLES WHERE Variable_Name LIKE '%dir'"

Пример вывода в Windows для MariaDB:

+---------------------------+---------------------------------------+ | Variable_name | Value | +---------------------------+---------------------------------------+ | aria_sync_log_dir | NEWFILE | | basedir | C:\Server\bin\mariadb\ | | character_sets_dir | C:\Server\bin\mariadb\share\charsets\ | | datadir | c:\Server\data\DB\data\ | | innodb_data_home_dir | | | innodb_log_group_home_dir | .\ | | innodb_tmpdir | | | lc_messages_dir | | | plugin_dir | C:\Server\bin\mariadb\lib\plugin\ | | slave_load_tmpdir | C:\Windows\TEMP | | tmpdir | C:\Windows\TEMP | +---------------------------+---------------------------------------+

Чтобы вывести только datadir выполните команду:

mysql -u root -p -e "SHOW VARIABLES WHERE Variable_Name = 'datadir'"

Как узнать путь до базы данных MySQL/MariaDB в скрипте

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

mysql -s -N -u root -p information_schema -e "SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = 'datadir'"

Примечание: если в Linux у вас проблемы с последними командами, то инвертируйте (поменяйте местами) одинарные и двойные кавычки.

Также не забывайте менять пользователя root на имя вашего пользователя.

Связанные статьи:

  • Как импортировать и экспортировать базы данных в MySQL или MariaDB (57.5%)
  • Как установить веб-сервер Apache с PHP 7, MariaDB/MySQL и phpMyAdmin (LAMP) на Ubuntu (57.5%)
  • Изучение MySQL / MariaDB для начинающих (57.5%)
  • 20 команд MySQL (mysqladmin) для администратора базы данных в Linux (57.5%)
  • Как переместить директорию с данными MySQL/MariaDB в новое расположение на Ubuntu 16.10 или 17.04 (57.5%)
  • Ошибка «PHP Fatal error: Uncaught mysqli_sql_exception: No database selected» (РЕШЕНО) (RANDOM — 57.5%)

MySQL – где физически хранятся базы данных

По умолчанию MySQL хранит данные в подпапке data в директории куда он сам установлен.
Допустим есть база данных test, значит все содержащиеся в ее таблицах данные по умолчанияю лежат в %MYSQL_DIR%/data/test.
Чтобы найти где физически расположены ваши mysql базы данных, вам сначала стоит залезть в директорию мускла и глянуть там упомянутую папку data, если она есть и в ней есть папки, совпадающие с названиями ваших бд – дальше можно не читать.
Если ее нет, но у вас есть доступ к mysql, то достаточно исполнить

mysql> select @@datadir;
+————————+
| @@datadir |
+————————+
| /usr/local/mysql/data/ |
+————————+
1 row in set (0.00 sec)

Если доступа к мусклу нет, а вам все-таки хочется добраться до файлов, то посмотрите как запущен процесс mysql сервера

bash-3.2$ ps -ax | grep mysql
274 ?? 0:57.42 /usr/local/mysql/bin/mysqld —basedir=/usr/local/mysql —datadir=/usr/local/mysql/data —plugin-dir=/usr/local/mysql/lib/plugin —user=mysql —log-error=/usr/local/mysql/data/hl.local.err —pid-file=/usr/local/mysql/data/hl.local.pid

Нас интересует путь в переменной
—datadir=/usr/local/mysql/data

Или переменная, в которой указывается путь до mysql конфига. У меня ее нет, но выглядит примерно так
—defaults-file=/etc/mysql/my.cnf
или
—defaults-extra-file=/etc/mysql/mysql/my.cnf

А в файле конфигурации ищем строку:
datadir=

Category: Базы данных
Tags: MySQL

Comments

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/dezhik.ru/wp-includes/class-wp-comment-query.php on line 399

Рубрики

Теги

Архив

  • November 2015 (1)
  • August 2014 (1)
  • June 2014 (1)
  • February 2014 (1)
  • January 2014 (1)
  • December 2013 (1)
  • November 2013 (1)
  • October 2013 (1)
  • March 2013 (1)
  • December 2012 (1)
  • October 2012 (1)
  • June 2012 (2)
  • October 2011 (1)
  • September 2011 (3)
  • August 2011 (2)
  • July 2011 (2)
  • June 2011 (1)
  • April 2011 (2)
  • March 2011 (1)
  • February 2011 (2)
  • January 2011 (1)
  • July 2010 (3)
  • May 2010 (1)
  • April 2010 (4)
  • March 2010 (8)
  • February 2010 (4)

Как посмотреть, где хранятся файлы баз данных в СУБД MySQL

Все файлы баз данных в СУБД MySQL хранятся на жёстком диске. Файлы с базами хранятся в директории /var/lib/mysql. Но путь можно изменить. В инструкции расскажем о том, как посмотреть, где хранятся файлы баз данных в СУБД MySQL в операционной системе Ubuntu 20.04.

Где хранятся файлы базы данных

Все файлы с базами хранятся в директории /var/lib/mysql. Чтобы убедиться в этом можно выполнить команду sudo grep -R ‘datadir’ /etc/mysql/ которая отобразит полный путь до файлов, в которых хранятся базы данных:

Как посмотреть, где хранятся файлы баз данных в СУБД MySQL

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

Как посмотреть, где хранятся файлы баз данных в СУБД MySQL

Как посмотреть, где хранятся файлы баз данных в СУБД MySQL

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

Как посмотреть, где хранятся файлы баз данных в СУБД MySQL

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

Как посмотреть, где хранятся файлы баз данных в СУБД MySQL

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

Как посмотреть, где хранятся файлы баз данных в СУБД MySQL

Теперь вы знаете, где хранятся базы данных в СУБД MySQL.

Где физически хранится база данных(создана в Workbench)?

29afe53e945d42249058e69491bd5178.png

Банальный вопрос, но я не могу найти, где именно хранятся файлы базы данных. В MySQL Workbench была создана БД с названием paymentservice с таблицей mobilepayment. Мне нужно скопировать БД на другой ПК. В C:\Program Files\MySQL\MySQL Server 5.6\data я ничего не нашел связанного с моей базой данных. Может я неправильно что-то понимаю и не там ищу?

  • Вопрос задан более трёх лет назад
  • 8868 просмотров

Комментировать

Решения вопроса 1

delphinpro

Сергей delphinpro @delphinpro

frontend developer

Базу обычно копируют с помощью экспорта-импорта. На исходной машине создаете дамп данных, на целевой делает импорт этого дампа. Можно использовать PMA, SypexDumper или штатную консольную утилиту mysqldump.

Ответ написан более трёх лет назад

Комментировать

Нравится 2 Комментировать

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

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