mysql数据库保存路径查找
-
sqlyon-创建的表 保存在哪里?
-
数据库保存路径
-
sql 8.0
1、找到sql配置文件ini
2、不要完全复制 只复制到 C:/ProgramData/MySQL/MySQL Server 8.0/my.ini 即可
3、找到配置文件my.ini打开,Ctrl+f,搜索datadir,找到Data目录,Data目录即存储位置
mysql之数据目录解读
MySQL8的数据目录
1. mysql8的主要目录
可以使用 find / -name mysql
命令查看mysql的所有目录。
1.1 数据库文件的存放目录
mysql数据库文件的存放路径为:/var/lib/mysql
mysql程序在启动时会到文件系统的某个目录下加载一些文件,之后再运行过程中产生的数据也会存储到这个目录下的某些文件中,这个路径就称为数据目录。
数据目录对应着一个系统变量datadir
,我们使用客户端与服务器建立连接之后查看这个系统变量的值即可。
1.2 命令目录
/usr/bin
和/usr/sbin
它里面存储了许多关于控制客户端程序和服务器程序的命令,许多可执行文件比如mysql,mysqld,mysqld_safe等。而数据目录是用来存储mysql在运行过程中产生的数据。
1.3 配置文件目录
/usr/share/mysql-8.0
和/etc/my.cnf
2. 数据库和文件系统
2.1 默认数据库
mysql自带4个系统数据库:
-
mysql
mysql系统自带的核心数据库,存储了mysql的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等。
-
information_schema
这个数据库保存着mysql服务器所有其他数据库的信息。比如有那些表、那些视图、那些触发器、那些列、那些索引。这些数据并不是真实的用户数据,而是描述性信息,有时候也称为元数据。在该库中提供了一些以innodb_sys开头的表,用于表示内部系统表。
-
performation_schema
主要保存mysql服务器运行过程中的一些状态信息,可以用来监控mysql服务的各类指标。包括统计最近执行了那些语句,在执行过程的各个阶段都花费了多长时间,内存的使用情况等信息。
-
sys
该数据库主要通过视图的形式把information_schema
和 performation_schema
结合起来,帮助开发人员监控mysql的技术性能。
2.2 数据库在文件系统中的表示
使用create database
语句创建一个数据库时,在文件系统上实际发生了什么呢?
每个数据库都对应数据目录下的一个子目录,每当新创建一个数据库时,mysql会做如下两点:
-
(1)在数据目录下创建一个和数据库名同名的子目录。
-
(2)在该子目录下创建一个db.opt的文件(5.7及之前版本),这个文件中包含了该数据库的各种数据,比如该数据库的字符集和比较规则。
这个数据目录下除了information_schema
数据库外,其他数据库在该目录下都有对应子目录。
2.3 表在文件系统中的表示
我们的数据其实都是以记录的形式插入到表中,每个表的信息其实可以分为两种:
-
表结构的定义
-
表中数据
2.3.1 innodb存储引擎
-
1.表结构
innodb在数据目录下对应的数据库子目录下创建一个专门用于描述表结构的文件,文件名为表名.frm
,这个文件的格式在不同平台上都是相同的,以二进制格式存储。
-
2.表中数据和索引
系统表空间
默认情况下innodb会在数据目录下创建一个ibdata1,大小为12M的文件。这个文件就是对应的系统表空间。该文件可以自扩展,当不够用时会自己增加文件大小。
可以通过修改my.cnf来让系统表空间对应多个文件,或者改名字:
innodb_data_file_path = data1:512M;data2:512M:autoextend
这样mysql启动之后就会创建两个512M大小的文件作为系统表空间,其中autoextend表示自扩展。
在mysql5.5.7到mysql5.6.6之间的各个版本中,我们的表中数据都会默认存储到这个系统表空间。
独立表空间
在mysql5.6.6以及之后的版本,innodb并不会默认的把各个表的存储到系统表空间,而是为每一个表建立一个独立表空间。会在该表数据库子目录下创建一个表名.ibd的文件
设置
我们可以自己指定使用系统表空间还是独立表空间来存储。
这个功能由启动参数innodb_file_pre_table
控制,比如说我们希望将表数据都存储到系统表空间时,可以在配置文件中配置:
-
3. mysql8.0
mysql8.0版本后,没有opt和frm文件,数据都放在ibd文件中。
2.3.2 MyISAM存储引擎
-
1.表结构
在存储表结构方面,myisam和innodb一样,也是在数据目录下对应的数据库子目录下创建了一个专门用于描述表结构的文件:表明.frm
-
2.表中数据和索引
-
3. mysql8.0
2.4 视图在文件系统中的表示
视图其实是虚拟的表,所以在存储视图的时候不需要存储真实的数据,只需要把它的结构存储起来就行了。指挥存储一个视图名.frm文件。
2.5 其他文件
除了上边说的用户自己存储的数据外,数据目录下还包括为了更好运行程序的一些额外文件,主要包括: