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 ...
随机推荐
- Linux下Mysql端口修改及防火墙开端口
用户权限问题:https://blog.csdn.net/weixin_43670802/article/details/103019598 Linux下修改Mysql默认的3306端口 如下: 1. ...
- synchronized类锁,对象锁,方法锁
synchronized从语法的维度一共有3个用法: 静态方法加上关键字 实例方法(也就是普通方法)加上关键字 方法中使用同步代码块 前两种方式最为偷懒,第三种方式比前两种性能要好. synchron ...
- Mysql批量删除和修改某个前缀的表
1.批量删除某个前缀的表名,首先选出这些个表. select concat( 'drop table ', table_name, ';' ) from information_schema.tabl ...
- SQL性能优化技巧
作者:IT王小二 博客:https://itwxe.com 这里就给小伙伴们带来工作中常用的一些 SQL 性能优化技巧总结,包括常见优化十经验.order by 与 group by 优化.分页查询优 ...
- Feign实现动态URL
需求描述 动态URL的需求场景: 有一个异步服务S,它为其他业务(业务A,业务B...)提供异步服务接口,在这些异步接口中执行完指定逻辑之后需要回调相应业务方的接口. 这在诸如风控审核,支付回调等场景 ...
- C# 不区分大小写替换文本
C# .NET类库自带的str.Replace() 方法替换文本不能区分大小写.我们可以自己编写一个扩展方法,支持文本忽略大小写替换.以下扩展方法实现了使用正则表达式忽略大小写替换文本. public ...
- Spring 控制反转和依赖注入
控制反转的类型 控制反转(IOC)旨在提供一种更简单的机制,来设置组件的依赖项,并在整个生命周期管理这些依赖项.通常,控制反转可以分成两种子类型:依赖注入(DI)和依赖查找(DL),这些子类型各自又可 ...
- Asp.net core IdentityServer4与传统基于角色的权限系统的集成
写在前面 因为最近在忙别的,好久没水文了 今天来水一篇: 在学习或者做权限系统技术选型的过程中,经常有朋友有这样的疑问 : "IdentityServer4的能不能做到与传统基于角色的权限系 ...
- AFNetworking 修改
相比大家刚刚拿到AFNetworking post 和 get 请求数据的时候都会有些小问题吧 NSLocalizedDescription=Request failed: unacceptabl ...
- github push时提示Username for 'https://github.com' 解决办法
问题 github push时在输入账号密码后仍提示:Username for 'https://github.com',需要进一步输入账号密码. 解决方案 注意这里的账号密码并不是github的登录 ...