1、mysql数据库的数据目录结构
查看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数据库的数据目录结构的更多相关文章
- 导入导出Mysql数据库、表结构、表数据
由sql文件导入 mysql -uusername -ppwd < ./abc.sql 导出整个数据库的表结构 mysqldump -uroot -pdbpasswd -d dbname > ...
- Navicat工具导出mySQL数据库某个视图结构的.sql脚本
用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...
- 用Entity Framework 来创建MySql数据库和表结构
1. 创建VS工程 2.添加新项, 选中ADO.Net Entity Data Model模板 3.填入Host及数据库名字, 如果没有此数据库, 会提示创建 4.添加edmx后, 右击选择属性,配置 ...
- MySQL数据库的存储结构
--把若干条sql语句封装起来,起个名字,叫做过程,也是没有返回值的函数 --把这个过程存储在数据库中->存储过程 --存储过程的创建过程 create procedure proceduceN ...
- xshell下mysql数据库只导出表结构不导出数据
操作系统:linux: 使用软件:xshell.winscp 进入系统之后输入命令: mysqldump -u 用户名 - p 密码 -d 数据库名 > aaa.sql 注意字符间的空格. 之后 ...
- 从Mysql数据库中导入导出表结构
1.从Mysql数据库中导入sql表 很简单,只需要一个命令即可搞定:[root@localhost ~]# mysql -uroot -piweb_xxx_mysql iweb < modif ...
- 一个漂亮的输出MySql数据库表结构的PHP页面
经常为了方便和直观,我们会首先直接在数据库中设计出表,但是接下来又要将表的结构和设计编写在设计文档中,以便编码的时候可以直观的查询,一旦数据库表非常多,字段非常多的时候,这无疑是件非常郁闷的工作. 这 ...
- MySQL数据库和InnoDB存储引擎文件
参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...
- MySQL数据库“十宗罪”(十大经典错误案例)
Top 1: Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行) 问题还原 1 2 3 4 5 6 mysql> show variables lik ...
随机推荐
- Ubuntu安装 php + apache + mysql
转载请注明来源:https://www.cnblogs.com/hookjc/ 1.安装SSH(必须) sudo apt-get install ssh 2.安装MySQL(虽然现在最新版为5.1,但 ...
- JSP页面 CTRL+F 功能实现
.res { color: rgba(255, 0, 0, 1) } .result { background: rgba(255, 255, 0, 1) } --- js 部分 var oldKey ...
- .NET6: 开发基于WPF的摩登三维工业软件 (2)
在<.NET6: 开发基于WPF的摩登三维工业软件 (1)>我们创建了一个"毛坯"界面,距离摩登还差一段距离.本文将对上一阶段的成果进行深化,实现当下流行的暗黑风格UI ...
- 编译安装nginx,实现多域名 https
一.编译安装nginx 1.1 获取源码包 [root@cetnos7 ~]#wget -O /usr/local/src/nginx-1.18.0.tar.gz http://nginx.org/d ...
- Java判断是否是回文字符串
public static boolean isPalindrome(String str) { int start = 0, end = str.length() - 1; while (start ...
- pytest(6)-Fixture(固件)
什么是固件 Fixture 翻译成中文即是固件的意思.它其实就是一些函数,会在执行测试方法/测试函数之前(或之后)加载运行它们,常见的如接口用例在请求接口前数据库的初始连接,和请求之后关闭数据库的操作 ...
- Solution -「NOI.AC 省选膜你赛」T2
这道题就叫 T2 我有什么办法www 题目 题意简述 给定一个字符串 \(s\),其长度为 \(n\),求无序子串对 \((u,v)\) 的个数,其中 \((u,v)\) 满足 \(u,v\) ...
- Docker 镜像 层结构理解
镜像到底是什么.镜像的层结构又是什么 通过docker history命令进行分析,镜像是一种其他镜像+文件+命令的组合. 这些镜像的加载.文件导入创建.命令是存在顺序关系的,所以也引出了层的概念. ...
- docker为什么会出现
痛点 环境不同所引发的问题 一款产品从开发到上线,一般都会有开发环境,测试环境,运行环境. 如果有一个环境中某个软件或者依赖版本不同了,可能产品就会出现一些错误,甚至无法运行.比如开发人员在windo ...
- nginx 配置ssl证书
1.443端口配置 server { listen 443 ssl; server_name www.test.com; ssl_certificate /usr/local/nginx/cert/t ...