查看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. Swift循环的介绍

    循环的介绍 在开发中经常会需要循环 常见的循环有:for/while/do while. 这里我们只介绍for/while,因为for/while最常见 for循环的写法 最常规写法 // 传统写法 ...

  2. Docker容器启动失败 Failed to start Docker Application Container Engine

    1.在k8s mster节点执行 1.kubectl get nodes 发现node节点没起来 [root@guanbin-k8s-master ~]# kubectl get nodes NAME ...

  3. 用Dockerfile部署zabbix

    用Dockerfile部署 zabbix-server部署阶段 要用docker跑zabbix-server,需要以下几个组件 组件名称 作用 数据库 MySQL或是PostgreSQL Zabbix ...

  4. Xcode 插件失效,启动崩溃解决

    升级6.4点击 Alcatraz PackageManager 崩溃解决 进入插件安装目录 cd ~/Library/Application\ Support/Developer/Shared/Xco ...

  5. FastJSON解析Json字符串(反序列化为List、Map)

    在日常开发与数据库打交道的时候,常有以Json格式的字符串存储到数据库的情况,当在Java程序中获取到对应的Json格式的String字符串后,如何才能转换为我们想要的数据格式(比如转换成Java中的 ...

  6. go基础——goto语法

    package main import "fmt" func main() { a := 10 LOOP: for a < 20 { if a == 15 { a += 1 ...

  7. 洛谷P1098 [NOIP2007 提高组] 字符串的展开

    题目链接:https://www.luogu.com.cn/problem/P1098 这个题出的真的很有质量,这个是我见过算是复杂的模拟题了,对付这种题,一丝都不能马虎,要想实现快捷而又简便的代码设 ...

  8. php发送邮件 (phpmailer)

    1.首先下载phpMailer文件官方文件https://sourceforge.net/projects/phpmailer/: 还有class.smtp.php. 2.去配置一下发送邮件的服务器, ...

  9. MyBatis分页插件PageHelper使用方法

    1.导入相关依赖坐标 <!-- MyBatis分页插件 --> <dependency> <groupId>com.github.pagehelper</gr ...

  10. 乘风破浪,遇见未来元宇宙(Metaverse)之进入元宇宙世界,虚拟数字人行业洞察报告

    正值元宇宙热潮,虚拟数字人兴起 作为⼀个新兴领域,虚拟数字⼈已经引起市场和资本的⾼度关注,截⾄目前据不完全统计,全球范围已有500+虚拟数字人相关项目获得融资,融资总额超10亿美元,并且融资项目和总额 ...