【MySQL】mysql数据目录

ops/2025/1/17 3:47:42/

目录

  • 1、背景
  • 2、版本
  • 3、数据目录
  • 4、总结

1、背景

安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的数据都是存储在这个目录中,可以大概了解一下这个目录下是怎么存储数据的。

2、版本

mysql> status
--------------
E:\mysql_install\mysql\bin\mysql.exe  Ver 8.0.40 for Win64 on x86_64 (MySQL Community Server - GPL)

3、数据目录

可以通过sql命令来查找数据目录,命令如下:

mysql> show variables like 'datadir';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| datadir       | E:\mysql_install\mysql\Data\ |
+---------------+------------------------------+
1 row in set, 1 warning (0.00 sec)

再看看这个目录有哪些文件:

$ ls E:\\mysql_install\\mysql\\Data\\
'#ib_16384_0.dblwr'   A030414-NC.err          A030414-NC-bin.000003   ca.pem            ib_buffer_pool   mysql.ibd             server-cert.pem   undo_001
'#ib_16384_1.dblwr'   A030414-NC.pid          A030414-NC-bin.index    ca-key.pem        ibdata1          performance_schema/   server-key.pem    undo_002
'#innodb_redo'/       A030414-NC-bin.000001   A030414-NC-slow.log     client-cert.pem   ibtmp1           private_key.pem       sys/
'#innodb_temp'/       A030414-NC-bin.000002   auto.cnf                client-key.pem    mysql/           public_key.pem        

看一下有哪些数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

查询结果有4个可以发现除了data目录下除了没有名为information_schema的目录,其它三个数据库都存在同名的目录,其它三个数据库的数据就存在对应的同名目录里,只是information_schema比较特殊。接下来我们创建一个新的数据库

mysql> create database test;

然后可以发现data目录下多了一个test的空目录,里面啥也没有,每创建一个数据库,data目录下就会多一个同名的目录:

$ ll E:\\mysql_install\\mysql\\Data\\test
total 0

再创建一张InnoDB的表看看:

mysql> use test;
Database changed
mysql> CREATE TABLE test1-> (->     id INT AUTO_INCREMENT PRIMARY KEY,->     str1 VARCHAR(255) NOT NULL DEFAULT '',->     str2 VARCHAR(255),->     str3 CHAR(5),->     str4 VARCHAR(255),->     str5 CHAR(10),->     INDEX idx_str1 (str1),->     INDEX idx_str4_str5 (str4, str5)-> ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
Query OK, 0 rows affected (0.05 sec)

可以发现test目录下产生了一个test1.ibd的二进制文件:

$ ll E:\\mysql_install\\mysql\\Data\\test\\
total 192
-rw-r--r-- 1 xxx 1049089 147456  115 10:11 test1.ibd

我们的表结构信息和插入此表的数据都存在这个文件中,这个文件也可以叫做独立表空间,里面存储多个,我们的数据都在页上。以前版本的mysql默认使用的是系统表空间,也就是所有表数据和信息存储到一个公共的地方,对应着数据目录data下的ibdata1文件,这个文件大小和路径还有名称都是可以在配置文件修改的。有的版本还会把表结构信息单独存储到表名.frm里,和存储数据文件分开。接下来再创建一个MyISAM存储引擎的表来看看有什么区别:

mysql> CREATE TABLE test2-> (->     id INT AUTO_INCREMENT PRIMARY KEY,->     str1 VARCHAR(255) NOT NULL DEFAULT '',->     str2 VARCHAR(255),->     str3 CHAR(5),->     str4 VARCHAR(255),->     str5 CHAR(10),->     INDEX idx_str1 (str1),->     INDEX idx_str4_str5 (str4, str5)-> ) ENGINE = MyISAM DEFAULT CHARSET = utf8;
Query OK, 0 rows affected, 1 warning (0.02 sec)

查看data目录下test目录下有哪些文件:

$ ll -a E:\\mysql_install\\mysql\\Data\\test\\
total 212
drwxr-xr-x 1 xxx 1049089      0  115 10:57 ./
drwxr-xr-x 1 xxx 1049089      0  115 09:59 ../
-rw-r--r-- 1 xxx 1049089 147456  115 10:41 test1.ibd
-rw-r--r-- 1 xxx 1049089      0  115 10:57 test2.MYD
-rw-r--r-- 1 xxx 1049089   4096  115 10:57 test2.MYI
-rw-r--r-- 1 xxx 1049089   7733  115 10:57 test2_366.sdi

发现生成了与test2相关的3个文件,这3个文件的作用分别为:

1、test2.MYD:存放数据信息
2、test2.MYI:存放索引信息
3、test2_366.sdi:存放表结构信息

有的版本表结构信息是存储在表名.frm文件中。

4、总结

本文大概讲了一下我们插入数据库的用户记录是存储在哪些目录哪些文件里的,注意不同版本的数据库存储的文件是有区别的,不过都大差不差,了解一下就行。


http://www.ppmy.cn/ops/150707.html

相关文章

了解linux中的“of_property_read_u32()”

of_property_read_u32(node, "post-pwm-on-delay-ms",&data->post_pwm_on_delay); /*根据"post-pwm-on-delay-ms",从属性中查找并读取一个32位整数*/ /*读到一个32位整数,保存到data->post_pwm_on_delay中*/ of_property_read_u32…

测试人员面试需要掌握的内容

测试人员面试需要掌握的内容 1、在公司的测试流程是什么? 产品经理确认本次版本的需求,召开需求评审会,进行估时排期,需求和时间都确定之后,UI出设计图,开发人员进行开发,测试人员编写测试用例…

Node.js——http 模块(一)

个人简介 👀个人主页: 前端杂货铺 🙋‍♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…

基于SSM实现的垃圾分类平台系统功能实现九

一、前言介绍: 1.1 项目摘要 随着城市化进程的加速和居民生活水平的提高,城市生活垃圾的产量急剧增加,给城市环境管理带来了巨大压力。传统的垃圾处理方式,如填埋和焚烧,不仅占用大量土地资源,还可能对环…

蓝桥杯刷题第一天——判断闰年

题目描述 输入一个年份,判断这一年是否是闰年,如果是输出 yes,否则输出 no。 1582 年以来,闰年的定义: 普通闰年:公历年份是 4 的倍数,且不是 100 的倍数的,为闰年(如…

VUE3 组合式 API 中,ref 和 reactive 是两种核心的响应式数据处理方式

在 Vue 3 的组合式 API 中,ref 和 reactive 是两种核心的响应式数据处理方式,用于创建响应式对象。它们都使得数据变得响应式,当数据发生变化时,视图会自动更新。 1. ref ref 用于创建一个响应式的基本数据类型(如字…

MacOS删除多余的Windows启动项

我的Macbook之前通过BootCamp安装了windows后又删除了,但是开机按住option键还是会出现Windows 启动盘选项,虽然没什么影响但还是觉得有问题,搜索一番找到删除方法,记录一下。主要问题是windows在Mac的EFI分区添加了相关内容&…

本地视频进度加入笔记+根据进度快速锁定视频位置

本地视频进度记录快速回溯 引言 在学习的过程中, 如果我们想快速记录当前看视频的位置, 后续回溯查找就会非常方便了。 实现效果 进度记录 通过按下快捷键ctrlaltu, 快速记录当前视频的进度信息,然后复制到typora软件内 快速回溯 在typora软件内, 选中视频索引…