Mysql database path linux

Путь до базы MySQL / MariaDB

В статье пойдет речь о просмотре и смене пути расположения файлов баз данных MySQL. Приведенные примеры выполнены на CentOS 7 — также они будут работать на Ubuntu и многих других дистрибутивах Linux, FreeBSD и Windows.

Посмотреть текущий путь

Увидеть, где хранятся базы можно несколькими способами.

Способ 1. Командная строка Linux.

В командной строке вводим:

systemctl status mysql || systemctl status mariadb

* для Windows используем оснастку Службы. Для FreeBSD используем команду service mysql-server stop.

mariadb.service — MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Ср 2018-07-11 15:38:16 MSK; 23h ago
Process: 1067 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
Process: 992 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 1066 (mysqld_safe)
CGroup: /system.slice/mariadb.service
??1066 /bin/sh /usr/bin/mysqld_safe —basedir=/usr
??1248 /usr/libexec/mysqld —basedir=/usr —datadir=/var/lib/mysql —plugin-dir=/usr/lib64/mysql/plugin —log-error=/var/log/mariadb/mariadb.log —pid-file=/var/run/mariadb/mariadb.pid —socket.

* в выделенном фрагменте /var/lib/mysql — путь до файлов базы данных.

Способ 2. Командная оболочка MySQL.

Данный способ является более универсальным — он подойдет для любого дистрибутива Linux, FreeBSD, Windows. Также, метод универсален с точки зрения метода установки MySQL — чистая установка или в составе готовой сборки (Open Server, Xampp, Denwer . ).

Заходим под пользователем root в командную оболочку СУБД:

> SHOW VARIABLES WHERE Variable_Name LIKE «datadir»;

Источник

Where does MySQL stored the data in my harddisk?

By mkyong | Last updated: August 27, 2009

Viewed: 312,141 (+28 pv/w)

Here i provide a simple user guide to find out where does MySQL database stored the data in our hard disk, both in Windows and Linux.

Windows

1) Locate the my.ini, which store in the MySQL installation folder.

2) Open the “my.ini” with our favor text editor.

Find the “datadir”, this is the where does MySQL stored the data in Windows.

Linux

1) Locate the my.cnf with the find / -name my.cnf command.

2) viewthe my.cnf file cat /etc/mysql/my.cnf

3) Find the “datadir”, this is where does MySQL stored the data in Linux system.

mkyong

Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

I found the post usefull, but the information I am searching is how can I alocate diferents databases in diferents path? with the same mysql instance?

I am not a computer tech, but using MacBook pro, Safari, opening a website I get the following error: Replace Query: 1114: The table ‘swsessions’ is full in ./__swift/library/Database/class.SWIFT_Database.php:1110. Any help as to how to fix the problem appreciated. I recently did a maintenance clean up on my computer and may have deleted something in error.

where i can see the query executed from JPA in MySQL, How to log the queries to FILE

Читайте также:  Https самоподписанный сертификат linux

Hi
Can you explain why mySQL Administrator reports a db index & data of 22MB but the “datadir” is only a series of files of 10KB and the are all *frm files

On my file it says:

# These are commonly set, remove the # and set as required.
# basedir = …..
# datadir = …..
# port = …..
# server_id = …..

Do you know where is it commonly set to be?

BTW, I am using the community edition. Thanks

On Linux:
find / -name my.cnf 2>/dev/null | xargs cat | grep ‘datadir’

find / -name my.cnf 2>/dev/null | xargs grep ‘datadir’

Thanx alot. this article really helped me…

Yes I found mine,
Does it work if we copy the database folder and use it in different system??

Please let me know, where I can find in mac system

On Linux, perhaps, the following can help (I mean, if the server is already running)

Hello, I’m using MySQL 5 on Windows 7 and my database was stored here : C:\ProgramData\MySQL\MySQL Server 5.5\data

Is mysql server stored all data in flat file structure ?, please share it.

Источник

Thread: mysql database location?

Thread Tools
Display

mysql database location?

where are the databases located?

how to open up the lan to database queries?

I tried to login from an XP machine to my ubuntu mysql server and cant.
When I explore the network from XP, it shows my ubuntu desktop as part of the workgroup.

Re: mysql database location?

Your database is location in /var/lib/mysql/»DB-Name»

What are you using to try and login?

If you have firewalls installed you will need to open up the port for mysql and you may also have to all access via your hosts.allow file
Rgds

Re: mysql database location?

Thanks, I copied the database into that folder

a windows based library program I wrote myself that uses mysql.
hosts.allow file, so I will check that out.

I recall something about that file when I did this before.

Re: mysql database location?

Not sure if copying a database to that folder will work, I think you might need to add the database using proper sql commands.

I have SQLyog here so I access my DB server using 192.168.1.250:3306

In my hosts.allow I have a line mysqld: ALL

Also in you my.conf file make sure that your Mysql instance is listening on the correct LAN interface. By default it may be looking at 127.0.0.1 by default so you will have to change this to listen on the LAN address instance

Re: mysql database location?

# /etc/hosts.allow: list of hosts that are allowed to access the system.
# See the manual pages hosts_access(5) and hosts_options(5).
#
# Example: ALL: LOCAL @some_netgroup
# ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you’re going to protect the portmapper use the name «portmap» for the
# daemon name. Remember that you can only use the keyword «ALL» and IP
# addresses (NOT host or domain names) for the portmapper, as well as for
# rpc.mountd (the NFS mount daemon). See portmap(8) and rpc.mountd(8)
# for further information.
#

stll not connecting yet, and turned off the XP firewall
Will try a reboot

OTHER ISSUE is a database I created with server 5.05
apparently has trouble with server 5.1?

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.1.49-1ubuntu8.1 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Читайте также:  Аналоги proteus для linux

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

Источник

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

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

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

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

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

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

В Windows

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

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

В Linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Как переместить директорию с данными MySQL/MariaDB в новое расположение на Ubuntu 16.10 или 17.04

Со временем базы данных растут, иногда перерастая место на файловой системе. Не важно, хотите ли вы использовать более просторное хранилище под базу данных, или использовать RAID, сетевые блочные устройства или разместить базы данных на другом диске, а не на котором расположена основная система, данная инструкция проведёт вас по процессу смены расположения директории data вашей СУБД MySQL.

Шаг 1 — Перемещение директории Data MySQL

Подготавливаясь для перемещения директории MySQL data, давайте проверим текущее расположения, для этого запустите интерактивную сессию MySQL с учётными данными администратора.

Когда появится запрос, введите пароль рута MySQL. Затем в приглашении MySQL выполните запрос для показа текущего расположения директории data:

Этот вывод подтверждает, что MySQL настроена на использование директории data по умолчанию, /var/lib/mysql/, т.е. эту директорию нам и нужно перемещать. После подтверждения этого, напечатайте exit; для выхода.

Чтобы быть уверенными в целостности данных, вы отключим MySQL перед тем, как начнём делать наши изменения:

Читайте также:  Настройка удаленного рабочего стола windows 10 для нескольких пользователей

systemctl не показывает результат выполнения команды управления сервисом, поэтому если вы хотите убедиться, что всё прошло успешно, используйте следующую команду:

Теперь, когда сервер отключён, мы скопируем с rsync существующую директорию с базой данных в новое расположение. Использование флага -a сохраняет права доступа и другие свойства каталога, -v обеспечивает вербальный вывод, поэтому вы можете следить за прогрессом.

Внимание: убедитесь, что отсутствуют завершающие слеши после имён директорий, они могут появиться при использовании автозавершения по tab. Когда присутствует завершающий слеш, rsync сбросит содержимое директории в точку монтирования вместо перенесения директории mysql.

Когда rsync закончит, переименуйте текущую папку, добавив к её имени расширение .bak и сохраните её до тех пор, пока не подтвердится, что перемещение было успешным. Переименовывая папку, мы с одной стороны убедимся, что сервер точно работает с новым расположением, при этом мы сохраним резервную копию на случай, если что-то пошло не так:

Теперь мы готовы переключиться на настройку.

Шаг 2 — Указание на новое расположение Data

MySQL имеет несколько способов переписать значения конфигурации. В зависимости от того, используете ли вы MySQL или MariaDB расположение и название конфигурационных файлов может различаться. Например, для MySQL это файл /etc/mysql/mysql.conf.d/mysqld.cnf

Отредактируйте этот файл в соответствии с вашей новой директорией data. Найдите строку, которая начинается с datadir= и измените на путь, который соответствует новому расположению. В моём случае (новой директорией является /home/mial/mysql/) обновлённая строка выглядит так:

Эта строка расположена в секции [mysqld].

Если вы используете MariaDB, то отредактируйте, например, файл /etc/mysql/mariadb.conf.d/50-server.cnf:

В нём также после секции [mysqld] можно изменить значение datadir. Ещё обратите внимание для секции [mariadb] – значения, вписанные здесь, будут распространяться только на MariaDB, и на секцию [mariadb-10.0] – опции, указанные в ней, будут влиять только на MariaDB десятой версии.

Казалось бы, уже пора снова поднимать MySQL, но нам ещё нужно кое-что настроить перед тем, как мы успешно сможем это сделать.

Шаг 3 — Настройка правил контроля доступа AppArmor

Нам нужно сообщить AppArmor, чтобы он разрешил MySQL записывать в новую директорию. Это будет сделано посредством создания псевдонима между директорией по умолчанию и новым расположением. Чтобы сделать это, отредактируйте файл псевдонимов AppArmor:

В конце этого файла добавьте следующее правило псевдонимов:

Чтобы изменения вступили в силу, перезапустите AppArmor:

Примечание: если вы пропустите шаг настройки AppArmor вы придёте к следующему сообщению об ошибке:

Вывод для systemctl и journalctl заканчивается:

Поскольку сообщение не приносит ясности о связи между AppArmor и директорией data, на решение этой ошибки можно потерять время.

Шаг 4 — Перезапуск MySQL

Теперь мы готовы запустить MySQL.

Чтобы убедиться, что новая директория data действительно используется, зайдите в MySQL:

И снова чтобы увидеть информацию о директории data введите:

Примечание: если значение не изменилось, то попробуйте перезапустить весь сервер, а не только службу MySQL.

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

Перезапустите MySQL последний раз, чтобы проверить, что всё работает как и ожидалось:

Создание символической ссылки на директорию данных MySQL

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

Далее создаём символическую ссылку:

Заключение

В этой инструкции мы переместили директорию MySQL с базами данных data в новое расположение и обновили правила контроля доступа AppArmor в Ubuntu для соответствия изменениям.

Источник

Оцените статью