mysql数据库保存路径查找方式

目录
  • mysql数据库保存路径查找
  • mysql之数据目录解读
    • 1. mysql8的主要目录
      • 1.1 数据库文件的存放目录
      • 1.2 命令目录
      • 1.3 配置文件目录
    • 2. 数据库和文件系统
      • 2.1 默认数据库
      • 2.2 数据库在文件系统中的表示
      • 2.3 表在文件系统中的表示
      • 2.4 视图在文件系统中的表示
      • 2.5 其他文件
  • 总结

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_schemaperformation_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 其他文件

除了上边说的用户自己存储的数据外,数据目录下还包括为了更好运行程序的一些额外文件,主要包括:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL数据文件存储位置的查看方法

    我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊.表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦! 在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如下命令: show global variables like "%datadir%";

  • MySQL中查看数据库安装路径的方法

    我们可以通过mysql命令查看mysql的安装路径: # 以下两个sql任意一个可查询 select @@basedir as basePath from dual ; show variables like '%basedir%'; 上面可以看到基础的安装路径,查看数据库data的路径怎么看,很简单,把上面的参数变量换成datadir即可: # 以下查询任意一个均可 select @@datadir as dataPath from dual ; show variables Like '%d

  • 详解Python连接MySQL数据库的多种方式

    上篇文章分享了windows下载mysql5.7压缩包配置安装mysql 后续可以选择 ①在本地创建一个数据库,使用navicat工具导出远程测试服务器的数据库至本地,用于学习操作,且不影响测试服务器的数据 ②连接测试服务器的数据库账号和密码,在测试服务器上操作,内部测试服务器的数据库账号和密码在分配时会给不同账号做权限限制,如不同账号允许登录的方式.开放的数据库范围.账号可读写操作的权限都会不一样,若出现一直使用代码登录不上远程数据库服务器,应检查下账号是否具有权限,可询问负责管理测试服务器数

  • mysql数据库中getshell的方式总结

    目录 outfile和dumpfile写shell 利用条件 基于union联合查询: 非联合查询 outfile和dumpfile的区别 secure_file_prive 日志getshell 慢日志getshell 利用general_log binlog的介绍 总结 outfile和dumpfile写shell 利用条件 数据库当前用户为root权限: 知道当前网站的绝对路径: PHP的GPC为 off状态:(魔术引号,GET,POST,Cookie) 写入的那个路径存在写入权限. 基于

  • Mysql数据库分库和分表方式(常用)

    本文主要给大家介绍Mysql数据库分库和分表方式(常用),涉及到mysql数据库相关知识,对mysql数据库分库分表相关知识感兴趣的朋友一起学习吧 1 分库 1.1 按照功能分库 按照功能进行分库.常见的分成6大库: 1 用户类库:用于保存了用户的相关信息.例如:db_user,db_system,db_company等. 2 业务类库:用于保存主要业务的信息.比如主要业务是笑话,用这个库保存笑话业务.例如:db_joke,db_temp_joke等. 3 内存类库:主要用Mysql的内存引擎.

  • MySQL 数据库定时备份的几种方式(全面)

    目录 一. mysqldump命令备份数据 二. mysqldump常用操作示例 三. 还原 MySQL 备份内容 1.编写BASH维护固定数量备份文件 2.使用crontab定期执行备份脚本 2.1 cron服务 2.2crontab语法 2.3创建cron脚本 四.附 crontab 的使用示例: 一. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下m

  • MySQL数据库优化的六种方式总结

    目录 方法一 方法二 方法五 方法六 附:mysql优化的常用方法 总结 方法一 使用连接来代替子查询(Sub-Queries).可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中. DELETE FROM customerinfo WHERE CustomerID NOT in (SELECT customerid FROM salesinfo) 方法二 事务.不是所有的数据库操作都可以只用一条或少数几条SQL语句就可以完成的.更多的时候是需要用到一系

  • 深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非

    PHP程序员应该都知道连接MySQL数据库可以使用mysql_pconnect(永久连接)函数,使用数据库永久连接可以提高效率,但是实际应用中数据库永久连接往往会导致出现一些问题,通常的表现就是在大访问量的网站上时常发生断断续续的无法连接数据库的情况,出现类似"Too many connections in ..."的错误提示信息,重新启动服务器又正常了,但过不了一会儿又出现同样的故障.对于这些问题的成因,恐怕就不是每个人都能说清楚的了,虽然PHP文档里有一些相关资料,但是解释的并不浅显易懂,这

  • 修改MySQL数据库中表和表中字段的编码方式的方法

    今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输出的异常,进一步确定是表和表中字段编码不当造成的,那就修改表和其中对应的字段呗,网上找了一会儿,你别说还真有,执行完sql脚本后果然可以存入中文了,尽管如此还是认为有必要总结一下,古人云:好记性不如烂笔头嘛,呵呵呵. 修改表的编码方式:ALTER TABLE `test`

  • 详解MySQL数据库优化的八种方式(经典必看)

    引言: 关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂. 偶尔发现了这篇文章,总结得很经典,文章流量也很大,所以拿到自己的总结文集中,积累优质文章,提升个人能力,希望对大家今后开发中也有帮助 1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小. 例如,在定义邮政编码这个字段时,如果将其设置为CHAR(

  • 详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式

    Ubuntu Server下启动/停止/重启MySQL数据库的三种方式 系统环境:ubuntu server 12.10 x64(mysql为系统自带) 当我们需要修​​改MySQL的配置文件my.cnf(windows 下为 my.ini)来进行一些设置的时候,修改完之后我们需要重启MySQL. my.cnf文件位置为:/ect/mysql/my.cnf Waring:如果该文件配置错误,MySQL将无法启动. 下面介绍三种方式对MySQL进行启动/停止/重启操作: 启动mysql: 方式一:

  • PHP基于ORM方式操作MySQL数据库实例

    本文实例讲述了PHP基于ORM方式操作MySQL数据库.分享给大家供大家参考,具体如下: ORM----Oriented Relationship Mapper,即用面向对象的方式来操作数据库.归根结底,还是对于SQL语句的封装. 首先,我们的数据库有如下一张表: 我们希望能够对这张表,利用setUserid("11111"),即可以设置userid:getUserid()既可以获得对象的userid.所以,我们需要建立model对象,与数据库中的表对应. 由于每张表所对应的model

随机推荐

其他