我不小心格式化了我的硬盘驱动器并重新安装了 Windows,并忘记备份我在 MySQL 服务器中的一个重要数据库。我正在尝试使用一些软件来挽救文件,但我不知道要查找什么。
文件存储的路径是什么,文件的名称是什么(我应该寻找什么命名约定或文件扩展名)?
我相信我的服务器正在使用 MyISAM,但不是 100% 肯定。
您可以检查my.ini
文件以查看数据文件夹的位置。
通常有一个文件夹 {mysqlDirectory}/data
MySQL数据存储:
Commands.frm
Commands.myd
Commands.myi
*.frm 文件包含表定义。您的 *.myi 文件是 MyISAM 索引文件。您的 *.myd 文件包含表数据。
编辑/更新。由于问题中显示的兴趣,这里有更多信息,也可以在评论中找到。
在 Windows 8.1 中,MySQL 数据库(默认情况下)存储在此处:C:\ProgramData\MySQL\MySQL Server 5.6\data
文件夹 C:\ProgramData 是一个隐藏文件夹,因此您必须在 Windows 资源管理器地址中键入它才能到达那里。在该数据文件夹中,数据库被命名为/{database_name_folder}/{database_tables_and_files}
.
例如,
C:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.frm
C:\ProgramData\MySQL\MySQL Server 5.6\data\mydatabase\mytable.ibd
感谢 @marty-mcgee 提供此内容
在 Windows 7 中,MySQL 数据库存储在
C:\ProgramData\MySQL\MySQL 服务器 5.6\data
注意:这是一个隐藏文件夹。我的例子是 MySQL Server 5.6 版;如果不同,请根据您的版本更改文件夹名称。
知道这个位置很方便,因为有时 MySQL Workbench 无法删除模式(或导入数据库)。这主要是由于 db 文件夹中存在文件,由于某种原因,Workbench 在早期进程中无法删除这些文件。使用 Windows 资源管理器删除文件并重试(删除、导入),您的问题应该得到解决。
我在根目录中有一个默认的 my-default.ini 文件,并且有一个服务器配置:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
所以这并没有告诉我路径。
最好的方法是连接到数据库并运行此查询:
SHOW VARIABLES WHERE Variable_Name LIKE "%dir" ;
结果如下:
basedir C:\Program Files (x86)\MySQL\MySQL Server 5.6\
character_sets_dir C:\Program Files (x86)\MySQL\MySQL Server 5.6\share\charsets\
datadir C:\ProgramData\MySQL\MySQL Server 5.6\Data\
innodb_data_home_dir
innodb_log_group_home_dir .\
lc_messages_dir C:\Program Files (x86)\MySQL\MySQL Server 5.6\share\
plugin_dir C:\Program Files (x86)\MySQL\MySQL Server 5.6\lib\plugin\
slave_load_tmpdir C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp
tmpdir C:\Windows\SERVIC~2\NETWOR~1\AppData\Local\Temp
如果您想查看为数据库配置的所有参数,请执行以下操作:
SHOW VARIABLES;
storage_engine 变量会告诉你使用的是 InnoDb 还是 MyISAM。
对于 Windows7 使用此链接:c:\users\all users\MySql\MySql Server xx\Data\
其中 xx 是您机器中安装的 sql server 的版本号。
只需对本地分区上的 *.myi 文件执行 Windows 搜索。时期。
正如我所怀疑的那样,它们位于程序文件文件夹中,而不是像大多数其他数据库管理器那样使用正确的仅数据文件夹。
为什么要搜索 my.ini 文件,用编辑器打开它,查找路径字符串,确保没有更改配置文件 (!),然后再进行第二次搜索?除了练习触摸打字之外,没有一点额外的好处。
那应该是您的 {install path}\data 例如C:\apps\wamp\bin\mysql\mysql5.5.8\data\{databasename}
它通常在下面指定的文件夹中,但 ProgramData 通常是隐藏文件夹。要显示它,请转到控制面板搜索“文件夹”,然后在高级设置下勾选显示隐藏文件并单击应用。C:/ProgramData/MySQL/MySQL 服务器 5.5/Data/
如果您使用的是安装了 Xampp 服务器的 Win10,那么您可以在C:\xampp\mysql\data中找到数据文件夹
在数据文件夹内,每个数据库都有自己的文件夹,该文件夹又包含代表数据库中单个表的 .frm、.myi 和 .myd 文件。
例如,如果您创建了一个名称为 myschool 的数据库,并且在数据库内部,您有三个名称为的表:
然后,您将拥有 Nursery 表:nursery.frm、nursery.myi 和nursery.myd。主表和辅助表也是如此。因此,在我这里提到的,您将在名为myschool的数据库文件夹内共有 9 个文件。
然后,您可以复制数据库文件夹并在新的 mysql 安装数据文件夹中使用它。
我刚刚在 Windows7 上安装了 MySQL 5.7。数据库文件位于以下隐藏目录中:
C:\ProgramData\MySQL\MySQL Server 5.7\Data
该my.ini
文件位于同一根目录中:C:\ProgramData\MySQL\MySQL Server 5.7
在 MySQL 中,
“.myd”是一个数据库自身,
“.tmd”是一个临时文件。
但有时我也会看到“.sql”。
这取决于您的设置和/或导出方法。
1) 找到存储在 MySQL 安装文件夹中的 my.ini。
例如,
C:\Program Files\MySQL\MySQL Server 5.1\my.ini
2) 使用我们喜欢的文本编辑器打开“my.ini”。
#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
找到“datadir”,这是 MySQL 在 Windows 中存储数据的位置。
C:\Program Files\MySQL\MySQL Workbench 6.3 CE\sys
粘贴URL
到窗口文件,并Tables, Procedures, Functions
从该目录获取