piazini 发表于 2016-5-13 16:11:51

Mysql数据文件存放在什么地方?

安装了lnmp后,用show variables like '%datadir%';命令知道数据路径是“ /usr/local/mysql/var/ ”。比如我新建了一个xyz表,插入了test@q.com这条数据。
问:test@q.com这个数据存储到磁盘的哪个文件里?

licess 发表于 2016-5-13 17:31:15

回复 1# 的帖子

数据库都在 /usr/local/mysql/var/ 下以数据库名为目录,表在该数据库目录下

piazini 发表于 2016-5-13 17:45:16

回复 2# 的帖子

军哥亲自回复,不胜荣幸。我看了目录下对应表名的文件夹里只有.frm .opt文件,都只有几k,源数据是12M大小。

piazini 发表于 2016-5-20 18:01:36

:( 没有人知道么,导入的数据库到底放哪里了

piazini 发表于 2016-5-20 18:07:10

我用Navicat for MySQL向MYSQL里导入了一个txt的数据表,用SQL语句也能查询,但是就是找不到对应的物理文件在哪里?

licess 发表于 2016-5-20 21:04:40

MySQL文件包括MySQL所建数据库文件和MySQL所用引擎创建的数据库文件。
.frm 文件与操作系统和数据库引擎无关,都有这么个与表名同名文件。

MyISAM引擎的文件:
.myd 即 my data,表数据文件
.myi 即my index,索引文件
.log 日志文件。

InnoDB引擎的文件:
采用表空间(tablespace)来管理数据,存储表数据和索引,
InnoDB数据库文件(即InnoDB文件集,ib-file set):
ibdata1、ibdata2等:系统表空间文件,存储InnoDB系统信息和用户数据库表数据和索引,所有表共用。
.ibd文件:单表表空间文件,每个表使用一个表空间文件(file per table),存放用户数据库表数据和索引。
日志文件: ib_logfile1、ib_logfile2

piazini 发表于 2016-5-21 12:48:25

谢谢军哥,是我没看仔细,确实在/usr/local/mysql/var/路径下,和配置文件里一样。每个数据库对应一个文件夹。:lol

piazini 发表于 2016-5-23 11:41:14

回复 1# 的帖子

经过查找,我的问题最终根源是数据库引擎,我默认引擎安装 InnoDB只会在对应的数据库里产生一个.frm文件,其他的数据都会放到var数据目录下创建一个名为ibdata1的自动扩展数据文件,而MyISAM中,一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引。在安装lnmp时候第二个文件就是问“是否关闭 InnoDB引擎”。如果已经安装了,可以在配置文件里修改重启即可生效(具体:https://bbs.vpser.net/viewthread.php?tid=9641&highlight=MyISAM)。详细说明参考这个http://blog.csdn.net/iamduoluo/article/details/7847448
页: [1]
查看完整版本: Mysql数据文件存放在什么地方?