查看mysql的主要目录结构

通过命名查看mysql的目录结构:find / -name mysql

1.1数据库文件的存放路径

MySQL数据库文件的存放路径:/var/lib/mysql/

1.2相关命令的存放路径

相关命令目录:/usr/bin和/usr/sbin。

/usr/bin目录



/usr/sbin目录



启动命令能读取的配置文件选项组

1.3配置文件目录

配置文件目录:/usr/share/mysql(命令及配置文件)和 /etc(如my.cnf)

/usr/share/mysql(命令及配置文件)



/etc目录

数据库和文件系统的关系

数据库的文件信息会存在磁盘上,文件系统来管理这些文件信息。

2.1查看默认的数据库

查看命令:SHOW DATABASES;

  • mysql:MySQL系统自带的核心数据库,它存储了MySQL的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。
  • information_schema:MySQL系统自带的数据库,这个数据库保存着MySQL服务器维护的所有其他数据库的信息 ,比如有哪些表、哪些视图、哪些触发器、哪些列、哪些索引。这些信息并不是真实的用户数据,而是一些描述性信息,有时候也称之为 元数据 。在系统数据库information_schema 中提供了一些以innodb_sys 开头的表,用于表示内部系统表。
  • performance_schema:MySQL系统自带的数据库,这个数据库里主要保存MySQL服务器运行过程中的一些状态信息,可以用来监控MySQL服务的各类性能指标 。包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等信息。
  • sys:MySQL系统自带的数据库,这个数据库主要是通过视图的形式把information_schema和performance_schema结合起来,帮助系统管理员和开发人员监控MySQL的技术性能。

2.2数据库在文件系统中的表示

使用create database 数据库名语句创建一个数据库的时候,在数据库目录/var/lib/mysql下会创建一个和数据库同名的子目录。

除了information_schema这个系统数据库外,其他的数据库在数据目录下都有对应的子目录。

2.3表在文件系统中的标识

使用数据库a中的表b描述在INNODB和MYISAM中的区别。

  • db.opt:存储的是数据库的字符集和比较规则
  • ibdata1:系统表空间,存储数据和索引信息
  • b.frm:描述的是表结构文件、字段长度
  • b.xxx.sdi:描述的是表结构文件、字段长度
  • b.idb:独立表空间,存储数据和索引信息
  • b.MYD(MYDATA):存储数据信息
  • b.MYI(MYINDEX):存储索引信息

在INNODB中:聚簇索引(数据和索引在一起)

  • mysql5.5.7(包括)至mysql5.6.6(不包括)版本:使用的是系统表空间

    存在的文件:db.opt、b.frm、ibdata1
  • mysql5.6.6(包括)至mysql5.7(包括)版本:使用的是独立表空间

    存在的文件:db.opt、b.frm、b.idb
  • mysql5.7(不包括)至mysql8.0(不包括)版本:使用的是独立表空间

    存在的文件:b.frm、b.idb
  • mysql8.0以及之后的版本(把frm的信息合并到idb中)

    存在的文件:b.idb

    在b.idb文件的目录下执行以下命令:idb2sdi --dump-flie=b.txt b.idb(查看b.txt存在表结构信息)

在MYISAM中:非聚簇索引(数据和索引不在一起)

  • mysql5.5.7(包括)至mysql5.6.6(不包括)版本:使用的是系统表空间

    存在的文件:db.opt、b.frm、ibdata1
  • mysql5.6.6(包括)至mysql5.7(包括)版本:使用的是独立表空间

    存在的文件:db.opt、b.frm、b.MYD、b.MYI
  • mysql5.7(不包括)至mysql8.0(不包括)版本:使用的是独立表空间

    存在的文件:b.frm、b.MYD、b.MYI
  • mysql8.0以及之后的版本(把frm的信息移动到sdi)

    存在的文件:b.xxx.sdi、b.MYD、b.MYI

1、mysql数据库的数据目录结构的更多相关文章

  1. 导入导出Mysql数据库、表结构、表数据

    由sql文件导入 mysql -uusername -ppwd < ./abc.sql 导出整个数据库的表结构 mysqldump -uroot -pdbpasswd -d dbname > ...

  2. Navicat工具导出mySQL数据库某个视图结构的.sql脚本

    用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...

  3. 用Entity Framework 来创建MySql数据库和表结构

    1. 创建VS工程 2.添加新项, 选中ADO.Net Entity Data Model模板 3.填入Host及数据库名字, 如果没有此数据库, 会提示创建 4.添加edmx后, 右击选择属性,配置 ...

  4. MySQL数据库的存储结构

    --把若干条sql语句封装起来,起个名字,叫做过程,也是没有返回值的函数 --把这个过程存储在数据库中->存储过程 --存储过程的创建过程 create procedure proceduceN ...

  5. xshell下mysql数据库只导出表结构不导出数据

    操作系统:linux: 使用软件:xshell.winscp 进入系统之后输入命令: mysqldump -u 用户名 - p 密码 -d 数据库名 > aaa.sql 注意字符间的空格. 之后 ...

  6. 从Mysql数据库中导入导出表结构

    1.从Mysql数据库中导入sql表 很简单,只需要一个命令即可搞定:[root@localhost ~]# mysql -uroot -piweb_xxx_mysql iweb < modif ...

  7. 一个漂亮的输出MySql数据库表结构的PHP页面

    经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作. 这 ...

  8. MySQL数据库和InnoDB存储引擎文件

    参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...

  9. MySQL数据库“十宗罪”(十大经典错误案例)

    Top  1: Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行) 问题还原 1 2 3 4 5 6 mysql> show variables lik ...

随机推荐

  1. jsp include html 乱码问题

    感谢大佬:https://blog.csdn.net/sessionsong/article/details/38778853 在使用<%@ include page=""% ...

  2. Java线程--LockSupport使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871805.html Java线程--LockSupport使用 public static ...

  3. 浅谈Java中重写与重载的区别

    重载和重写是Java中两个截然不同的概念.但是却因为名字相近导致很多人经常混淆. 下面用例子展示出他们之间的区别. 在Java中,重载(overloading) 发生在本类.方法名相同,参数列表不同, ...

  4. 降维处理PCA

    要理解什么是降维,书上给出了一个很好但是有点抽象的例子. 说,看电视的时候屏幕上有成百上千万的像素点,那么其实每个画面都是一个上千万维度的数据:但是我们在观看的时候大脑自动把电视里面的场景放在我们所能 ...

  5. Solution -「LOCAL」「cov. HDU 6816」折纸游戏

    \(\mathcal{Description}\)   Link(削弱版).   \(n\) 张纸叠在一起对折 \(k\) 次,然后从上到下为每层的正反两面写上数字,求把纸重新摊平后每张纸上的数字序列 ...

  6. Vue2.0源码学习(3) - 组件的创建和patch过程

    组件化 组件化是vue的另一个核心思想,所谓的组件化就,就是说把页面拆分成多个组件(component),每个组件依赖的css.js.图片等资源放在一起开发和维护.组件是资源独立的,在内部系统中是可以 ...

  7. 私有化轻量级持续集成部署方案--05-持续部署服务-Drone(上)

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 持续部署概述 持续部署是能以自动化方式,频繁而且持续性的,将软件部署到生产环境.使软件产品能够快速迭代. 在之前部署 ...

  8. 1、Oauth概念与模式

    参考 OAuth 2.0 的一个简单解释

  9. Consul安装启动

    1.安装 sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://rpm.releases.hashicorp ...

  10. vmware 16 pro 安装macos

    VMware 16 安装 MAC OS 10.13 原版(详细图文教程)关于虚拟机安装苹果系统的教程网络上有很多, 有些适合自己, 有些则不适合(教程中的版本老旧或工具资源消失), 在安装成功后选择用 ...