I am using VS2012 and I have a database created:
(localdb)v11.0 (SQL Server 11.0.2100 - T61Alan)
How can I find out the physical location of this database. How can I back this up? Can I just make a copy of the files, move these to another location and start the database again.
Here is my connection string:
<add name="DB1Context" connectionString="Data Source=(LocalDb)v11.0;Initial Catalog=DB1;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
asked Aug 13, 2013 at 6:46
0
It is quite confusing for people who touch with Entity Framework the first time.
If you use Code First, an mdf file is generated at %USERPROFILE%
(e.g. C:Users<username>
).
If you use Database First, you create a database under SQL Server Object Explorer (not Server Explorer!), an mdf file will be generated at %LOCALAPPDATA%MicrosoftMicrosoft SQL Server Local DBInstancesMSSQLLocalDB
.
Ray
7,7327 gold badges57 silver badges90 bronze badges
answered Jan 17, 2017 at 4:19
code4jcode4j
4,1785 gold badges34 silver badges51 bronze badges
3
Are you saying you can see it listed in SQL Server Management Studio? Right click on DataBase -> Properties -> Files
will tell you where on your hard disk it lives. If you backup the mdf, be sure to back up the ldf too.
Alternatively, you can right click on the DB, and choose Tasks -> Backup
. This will make a a single .bak file for you, and you don’t need to worry about the mdf/ldf.
answered Aug 13, 2013 at 6:50
Paul McLeanPaul McLean
3,4306 gold badges25 silver badges36 bronze badges
1
http://technet.microsoft.com/en-us/library/hh510202.aspx
The system database files for the database are stored in the users’
local AppData path which is normally hidden. For example
C:Users—user—AppDataLocalMicrosoftMicrosoft SQL Server Local
DBInstancesLocalDBApp1. User database files are stored where the
user designates, typically somewhere in the C:Users\Documents
folder.
answered Aug 13, 2013 at 6:57
JonathanJonathan
5,9531 gold badge26 silver badges35 bronze badges
1
Try this one —
DECLARE
@SQL NVARCHAR(1000)
, @DB_NAME NVARCHAR(100) = 'AdventureWorks2008R2'
SELECT TOP 1 @SQL = '
BACKUP DATABASE [' + @DB_NAME + ']
TO DISK = ''' + REPLACE(mf.physical_name, '.mdf', '.bak') + ''''
FROM sys.master_files mf
WHERE mf.[type] = 0
AND mf.database_id = DB_ID(@DB_NAME)
PRINT @SQL
EXEC sys.sp_executesql @SQL
Output —
BACKUP DATABASE [AdventureWorks2008R2]
TO DISK = 'D:DATABASESQL2012AdventureWorks2008R2.bak'
answered Aug 13, 2013 at 7:05
DevartDevart
119k23 gold badges163 silver badges185 bronze badges
Open Windows registry editor and navigate to key HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL Server Local DBInstalled Versions
. Look beneath the version key of the SQL Server instance being targeted e.g. 11.0
for SQL 2012, and see its InstanceAPIPath
value for file system location of the localdb’s.
Note that at full list of SQL server versions mapped to release name and year can be found here
answered Jul 24, 2015 at 21:49
John KJohn K
28.4k31 gold badges139 silver badges228 bronze badges
2
This PowerShell script, will give you the default location for localdb .mdf files:
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
(New-Object Microsoft.SqlServer.Management.Smo.Server("(localdb)$instancename")).DefaultFile
where $instancename
is the name of the localdb instance you want to check for. You can get a list of localdb instances by running
sqllocaldb i
answered Oct 28, 2015 at 12:19
Jon ListJon List
1,5041 gold badge14 silver badges20 bronze badges
I tried everything here and could not find them anywhere. I finally found them by searching *.mdf in file explorer. They were in C:UsersusersourcereposCallNoteApp_Data
.
answered Jun 10, 2022 at 22:12
cytek04cytek04
4054 silver badges15 bronze badges
I accidentally formatted my hard drive and re-installed Windows and forgot to backup an important database I had in my MySQL server. I’m trying to salvage files now using some software, but I don’t know what to look for.
What is the path that the files are stored in, and what are the files named (what naming convention, or file extension should I look for)?
I believe my server was using MyISAM, but not 100% sure.
asked Oct 18, 2012 at 5:25
4
You can check my.ini
file to see where the data folder is located.
Usually there is a folder {mysqlDirectory}/data
MySQL data storage:
Commands.frm
Commands.myd
Commands.myi
The *.frm files contain the table definitions. Your *.myi files are MyISAM index files. Your *.myd files contain the table data.
Edit/Update.
Because of the interest shown in the question here is more info which is found also in the comments.
In Windows 8.1, the MySQL databases are stored (by default) here: C:ProgramDataMySQLMySQL Server 5.6data
The folder C:ProgramData is a hidden folder, so you must type it into Windows Explorer address to get there. In that data folder, the databases are named /{database_name_folder}/{database_tables_and_files}
.
For instance,
C:ProgramDataMySQLMySQL Server 5.6datamydatabasemytable.frm
C:ProgramDataMySQLMySQL Server 5.6datamydatabasemytable.ibd
Thank @marty-mcgee for this content
answered Oct 18, 2012 at 5:27
UdanUdan
5,3892 gold badges28 silver badges34 bronze badges
6
In Windows 7, the MySQL database is stored at
C:ProgramDataMySQLMySQL Server 5.6data
Note: this is a hidden folder. And my example is for MySQL Server version 5.6; change the folder name based on your version if different.
It comes in handy to know this location because sometimes the MySQL Workbench fails to drop schemas (or import databases). This is mostly due to the presence of files in the db folders that for some reason could not be removed in an earlier process by the Workbench. Remove the files using Windows Explorer and try again (dropping, importing), your problem should be solved.
answered Aug 10, 2013 at 21:06
JulioJulio
5114 silver badges3 bronze badges
I have a default my-default.ini file in the root and there is one server configuration:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
So that does not tell me the path.
The best way is to connect to the database and run this query:
SHOW VARIABLES WHERE Variable_Name LIKE "%dir" ;
Here’s the result of that:
basedir C:Program Files (x86)MySQLMySQL Server 5.6
character_sets_dir C:Program Files (x86)MySQLMySQL Server 5.6sharecharsets
datadir C:ProgramDataMySQLMySQL Server 5.6Data
innodb_data_home_dir
innodb_log_group_home_dir .
lc_messages_dir C:Program Files (x86)MySQLMySQL Server 5.6share
plugin_dir C:Program Files (x86)MySQLMySQL Server 5.6libplugin
slave_load_tmpdir C:WindowsSERVIC~2NETWOR~1AppDataLocalTemp
tmpdir C:WindowsSERVIC~2NETWOR~1AppDataLocalTemp
If you want to see all the parameters configured for the database execute this:
SHOW VARIABLES;
The storage_engine variable will tell you if you’re using InnoDb or MyISAM.
answered Feb 12, 2015 at 4:05
MukusMukus
4,8432 gold badges42 silver badges56 bronze badges
1
MYSQL 8.0:
Search my.ini
in disk, we will find this folder:
C:ProgramDataMySQLMySQL Server 8.0
It’sProgramData
, notProgram file
Data is in sub-folder: Data
.
Each database
owns a folder, each table
is file, each index
is 1+ files.
Here is a sample database sakila
:
answered Sep 7, 2018 at 14:21
DongdongDongdong
2,14017 silver badges27 bronze badges
1
For Windows7 Use This Link:
c:usersall usersMySqlMySql Server x.xData
Where x.x is the version number of the sql server installed in your machine.
answered Feb 2, 2014 at 7:40
answered Oct 18, 2012 at 5:29
codingbizcodingbiz
26k8 gold badges56 silver badges95 bronze badges
Just perform a Windows Search for *.myi files on your local partitions. Period.
As I suspectected, they were located inside a program files folder, instead of using a proper data-only folder like most other database managers do.
Why do a my.ini file search, open it with an editor, look-up the path string, make sure you don’t alter the config file (!), and then do a second search? Complicated without a shred of added benefit other than to practice touch typing.
answered Oct 17, 2013 at 15:01
AleDBAleDB
911 bronze badge
1
If you’re using Win10 with Xampp server installed, then you can find the data folder in C:xamppmysqldata
Inside the data folder, each database has its own folder which in turn contains the .frm, .myi and .myd files which represent for a single table in the database.
If for instance, you created a database with the name: myschool and inside the database, you have three tables with the names:
- Nursery
- Primary
- Secondary
Then, you will have for the Nursery table: nursery.frm, nursery.myi and nursery.myd. Same will go for the Primary and Secondary tables. Thus, in the I mentioned here, you will a total of 9 files inside the database folder named myschool.
You can then copy the database folder and use it in your new mysql installation data folder.
answered Apr 22, 2019 at 13:43
It’s usually in the folder specified below, but ProgramData is usually a hidden folder. To show it, go to control panel search for «folder» then under advanced settings tick show hidden files and click apply.
C:/ProgramData/MySQL/MySQL Server 5.5/Data/
answered Mar 1, 2016 at 8:25
B.KB.K
83710 silver badges6 bronze badges
I just installed MySQL 5.7 on Windows7. The database files are located in the following directory which is a hidden one:
C:ProgramDataMySQLMySQL Server 5.7Data
The my.ini
file is located in the same root: C:ProgramDataMySQLMySQL Server 5.7
answered Feb 19, 2017 at 11:12
in MySQL are
«.myd» a database self and
«.tmd» a temporal file.
But sometimes I see also «.sql».
It depends on your settings and/or export method.
answered Sep 7, 2015 at 9:44
1) Locate the my.ini, which store in the MySQL installation folder.
For example,
C:Program FilesMySQLMySQL Server 5.1my.ini
2) Open the “my.ini” with our favor text editor.
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"
#Path to the database root/"
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data
Find the “datadir”, this is the where does MySQL stored the data in Windows.
answered Oct 18, 2012 at 5:30
AmiAmi
4,2316 gold badges40 silver badges75 bronze badges
C:Program FilesMySQLMySQL Workbench 6.3 CEsys
paste URL
in to window file,
and get Tables, Procedures, Functions
from this directory
answered Feb 1, 2017 at 15:33
От автора: а что это вы под ногами ищете? Базу данных? Поверьте, скорее все, она никуда не делась, и лежит «целехонькая» на вашем ПК или сервере! Там уже смотрели? Наверное, вы просто не знаете, где хранятся данные MySQL. Об этом мы вам сегодня и расскажем.
Импорт-экспорт данных в MySQL
Чаще всего найти утерянные базы данных нужно для импорта или копирования. К счастью, для этого не обязательно знать место их «дислокации» на дисковом пространстве. Программные интерфейсы для работы с СУБД MySQL имеют встроенные средства переноса и создания копий БД и таблиц.
В наших «широтах» самой востребованной остается оболочка phpMyAdmin, предназначенная для администрирования системы управления БД MySQL. На примере этого веб-приложения мы и рассмотрим встроенные средства, которые позволят нам остаться в неведении, где находится MySQL.
В phpMyAdmin создание копий баз данных происходит через вкладку «Экспорт». Для дублирования БД или таблицы слева в списке выберете нужный для копирования элемент. После этого перейдите в раздел «Экспорт». В окне параметров в подразделе «Способ экспорта» должно быть установлено значение «Обычный». Затем в списке выделите базу данных (таблицу). После чего нажимаете в самом низу окна «Ок».
Профессия PHP-разработчик с нуля до PRO
Готовим PHP-разработчиков с нуля
Вы с нуля научитесь программировать сайты и веб-приложения на PHP, освоите фреймворк
Laravel, напишете облачное хранилище и поработаете над интернет-магазином в команде.
Сможете устроиться на позицию Junior-разработчика.
Узнать подробнее
Командная стажировка под руководством тимлида
90 000 рублей средняя зарплата PHP-разработчика
3 проекта в портфолио для старта карьеры
В результате программа создаст копию и сохранит ее на клиентской стороне. Вся работа с веб-приложением происходит через браузер, поэтому созданный дубликат БД нужно искать в папке загрузок.
Место хранения оригиналов баз
Знание встроенного функционала phpMyAdmin поможет быстро создать копии нужных данных. Но если на компьютере не установлена ни одна из программных оболочек для администрирования СУБД. А вам нужно перенести БД на другой сервер. Или изменить хранящуюся в таблицах информацию. При этом выполнять запросы придется через консоль, где обязательно прописывается путь к БД. Как видите знать, где хранится база данных MySQL, важно и нужно.
Вот еще один пример «из жизни начинающего админа». Предположим, первоначально вы пользовались Denwer. Но в один «непогожий» день вы нечаянно удалили часть файлов локального сервера. В результате чего он больше не запускается, и вы начинаете «рыть» оставшиеся папки в надежде спасти хотя бы базы данных. Но в этом случает также «удобнее» знать, где копать. Вот пример пути, где в веб-сервере хранятся БД: F:Webserverusrlocalmysql-5.5data, где F – это диск, на котором был установлен Denwer.
Для открытия файлов скопированных БД потребуется phpMyAdmin. Если вы установили сервер СУБД без оболочки, тогда по умолчанию место, где хранятся базы данных MySQL, находится здесь: C:Documents and SettingsAll UsersApplication DataMySQLMySQL Server 5.1data
Файл my.ini
Все описанные методы связаны с осуществлением поиска (в зависимости от варианта использования СУБД) той или иной папки, в которой программы (или сервер) сохраняют созданные базы. Но неужели пользователь никак не может повлиять на это, и самостоятельно указать место на дисковом пространстве MySQL, где хранятся все БД.
Такой вариант настройки был предусмотрен создателями этой системы управления. Все основные параметры задаются в файле my.ini. Он расположен в той же директории, куда установлена и система СУБД.
Данный тип файлов относится к конфигурационным, и открывается с помощью обычного «Блокнота». Чтобы задать «свое» место для всех созданным БД, откройте файл my.ini. Затем найдите в нем раздел [mysqld], и в параметре datadir пропишите путь к нужной папке. После сохранения внесенных изменений (Файл> Сохранить) все существующие базы будут перенесены в указанное вами место файловой системы компьютера или сервера.
Средства SQL
Все описанные выше варианты узнать в MySQL, где лежит БД, являются второстепенными. Потому что СУБД не понимает человеческой речи и письменности. Для общения с ней существует специальный язык SQL. Аббревиатура переводится как язык структурированных запросов (structured query language). То есть с помощью операторов и команд этого языка можно влиять на структуру содержащейся в источнике информации: делать выборки, обновлять данные, вставлять или удалять.
Но не будем слишком забираться в «дремучий лес» профессиональных знаний, нас интересует единственная команда SHOW. Точнее, один из ее вариантов SHOW VARIABLES. Эта команда SQL используется в администрировании для получения служебной информации о конкретном сервере или базе.
SHOW VARIABLES выводит список переменных и их значений из INFORMATION_SCHEMA, которая представляет собой «служебную» БД, в которой содержится информация обо всех базах, подключенных к серверу. Пример запроса: SHOW VARIABLES;
Но из всего этого списка нас интересует лишь одна переменная, с помощью которой можно «узнать» у сервера MySQL, где хранится база. Это переменная basedir, в значение которой записан путь к основной директории. Пример запроса: SHOW VARIABLES LIKE ‘basedir’;
Профессия PHP-разработчик с нуля до PRO
Готовим PHP-разработчиков с нуля
Вы с нуля научитесь программировать сайты и веб-приложения на PHP, освоите фреймворк
Laravel, напишете облачное хранилище и поработаете над интернет-магазином в команде.
Сможете устроиться на позицию Junior-разработчика.
Узнать подробнее
Командная стажировка под руководством тимлида
90 000 рублей средняя зарплата PHP-разработчика
3 проекта в портфолио для старта карьеры
А сейчас прекращайте понапрасну «рыться» в файловой системе своего ПК. Теперь вы точно знаете, как правильно «спросить» у СУБД MySQL, где хранятся базы. Надеемся, нам удалось научить вас этому!
Обновлено: 20.07.2020
Опубликовано: 12.07.2018
Тематические термины: MySQL, MariaDB, Linux.
В статье пойдет речь о просмотре и смене пути расположения файлов баз данных MySQL. Приведенные примеры выполнены на CentOS 7 — также они будут работать на Ubuntu и многих других дистрибутивах Linux, FreeBSD и Windows.
Просмотр путей
Командная строка
Оболочка MySQL
phpMyAdmin
Смена расположения баз
Смотрите также
Посмотреть текущий путь
Увидеть, где хранятся базы можно несколькими способами.
Способ 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 в командную оболочку СУБД:
mysql -uroot -p
Вводим:
> SHOW VARIABLES WHERE Variable_Name LIKE «datadir»;
или
> select @@datadir;
Пример ответа:
+—————+——————+
| Variable_name | Value |
+—————+——————+
| datadir | /var/lib/mysql/ |
+—————+——————+
Способ 3. Через phpMyAdmin.
Если у нас нет доступа к серверу по SSH или удаленному рабочему столу, запрос можно сделать в phpMyAdmin:
Смена пути
Останавливаем сервер баз данных:
systemctl stop mysql || systemctl stop mariadb
Создаем новый каталог, например:
mkdir /home/mysql
Переносим содержимое старого каталога в новый:
mv /var/lib/mysql/* /home/mysql/
Задаем права и владельца для нового каталога:
chown mysql:mysql /home/mysql
chmod 755 /home/mysql
Открываем конфигурационный файл my.cnf:
vi /etc/my.cnf.d/server.cnf
* в разных версиях mysql и mariadb могут использоваться разные пути:
- /etc/my.cnf.
- /etc/my.cnf.d/server.cnf.
- /etc/my.cnf.d/mariadb-server.cnf.
- В Windows это my.ini.
и задаем новый путь:
[mysqld]
datadir = /home/mysql
Запускаем сервер:
systemctl start mysql || systemctl start mariadb
Смотрите также
Установка MariaDB на CentOS 7
Как восстановить базу MySQL
Создание и удаление баз в MySQL/MariaDB
Экспорт баз данных MariaDB/MySQL в phpMyAdmin
Была ли полезна вам эта инструкция?
Да Нет
Удобнее было бы забэкапить базу, нежели отправлять почтой сами файлы БД.
Но если так хочется отправить файлы, можно посмотреть результат выполнения запроса sp_HelpDB имябазы,
во втором датасете он перечислит все файлы базы. Ну или на базе правая кнопка мыши — свойства.
По умолчанию обычно базы кладутся в туда, куда им сказали быть при установке SQL сервера.
Обычно это директория Data по соседству с директорией самого сервера.
Например, C:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLDATA
Но это мой частный случай.
И по умолчанию нельзя надеяться, что все файлы базы окажутся там, где они по умолчанию и даже что все файлы базы будут расположены на одном диске.