Как найти базу данных sql на компьютере

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

Alan2's user avatar

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's user avatar

Ray

7,7327 gold badges57 silver badges90 bronze badges

answered Jan 17, 2017 at 4:19

code4j's user avatar

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.

enter image description here

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.

Andrey Morozov's user avatar

answered Aug 13, 2013 at 6:50

Paul McLean's user avatar

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

Jonathan's user avatar

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

Devart's user avatar

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 K's user avatar

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 List's user avatar

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

cytek04's user avatar

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.

Sabito stands with Ukraine's user avatar

asked Oct 18, 2012 at 5:25

Brad's user avatar

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

Udan's user avatar

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.

Sabito stands with Ukraine's user avatar

answered Aug 10, 2013 at 21:06

Julio's user avatar

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

Mukus's user avatar

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’s ProgramData, not Program 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:
enter image description here

answered Sep 7, 2018 at 14:21

Dongdong's user avatar

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.

Sabito stands with Ukraine's user avatar

answered Feb 2, 2014 at 7:40

user3256430's user avatar

Community's user avatar

answered Oct 18, 2012 at 5:29

codingbiz's user avatar

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

AleDB's user avatar

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:

  1. Nursery
  2. Primary
  3. 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.

Sabito stands with Ukraine's user avatar

answered Apr 22, 2019 at 13:43

Saliu Muideen's user avatar

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.K's user avatar

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

Danny Nimmo's user avatar

answered Feb 19, 2017 at 11:12

Erik's user avatar

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

Alexander Khomenko's user avatar

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

Ami's user avatar

AmiAmi

4,2316 gold badges40 silver badges75 bronze badges

C:Program FilesMySQLMySQL Workbench 6.3 CEsys

paste URLin to window file,
and get Tables, Procedures, Functions from this directory

answered Feb 1, 2017 at 15:33

Muhammad Abbas's user avatar

Где хранятся данные MySQL на вашем компьютере

От автора: а что это вы под ногами ищете? Базу данных? Поверьте, скорее все, она никуда не делась, и лежит «целехонькая» на вашем ПК или сервере! Там уже смотрели? Наверное, вы просто не знаете, где хранятся данные 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:

Пример создания запроса на получение пути к базе MySQL в 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
Но это мой частный случай.

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

Понравилась статья? Поделить с друзьями:
  • Как найти черты волшебной сказки
  • Как найти станцию каланчевская
  • Ток в узле как найти
  • Как найти общую площадь фигуры учи ру
  • Как начинающему риэлтору найти первых клиентов