Mysql中的目录和文件详解

Mysql中的目录和文件

bin:可执行文件
conf:配置文件
data:数据存储目录
docs:
include:
lib:
license:
log:
man:
readME:
share:
support-files:

bin目录
在Mysql的安装目录下有一个特别的bin目录,这个目录下存放着许多可执行文件。这些可执行文件都是与服务器和客户端程序相关的。
启动Mysql服务器程序
mysqld
mysqld这个可执行文件就代表着mysql服务器程序,运行这个可执行文件就可以直接启动一个服务器进程。但是这个命令不常使用。
mysqld_safe
mysqld_safe是一个启动脚本文件,他会间接调用mysqld,而且还顺便启动了一个监控进程,这个监控进程在服务器进程挂掉的时候,可以帮助重启他。
mysql.server
mysql.server 也是一个启动脚本,它会间接的调用 mysqld_safe,在调用 mysql.server 时在后边指定 start 参数就可以启动服务器程序了 就像这样: mysql.server start
需要注意的是,这个 mysql.server 文件其实是一个链接文件,它的实际文件 是 support-files/mysql.server,所以如果在 bin 目录找不到,到 support-files 下去 找找,而且如果你愿意的话,自行用 ln 命令在 bin 创建一个链接。 另外,我们还可以使用 mysql.server 命令来关闭正在运行的服务器程序,只 要把 start 参数换成 stop 就好了: mysql.server stop
mysqld_multi
其实我们一台计算机上也可以运行多个服务器实例,也就是运行多个 NySQL 服务器进程。mysql_multi 可执行文件可以对每一个服务器进程的启动或停止进 行监控

客户端程序
在我们成功启动mysql服务器程序后,就可以接着启动客户端程序来连接到服务器端了,bin目录下游许多客户端程序,比如mysqladmin、mysqldump、mysqlcheck等等。
mysqladmin 执行管理操作的工具,检查服务器配置、当前运行状态,创建、 删除数据库、设置新密码。
mysqldump 数据库逻辑备份程序。
mysqlbackup 备份数据表、整个数据库、所有数据库,一般来说 mysqldump 备份、mysql 还原。

conf启动选项和参数 配置参数文件
当Mysql实例启动后,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某些内存结构等。在默认情况下,mysql实例会按照约定的顺序在指定的位置进行读取,用户可以通过mysql --help|grep my.cnf 来寻找默认的配置文件路径即可。

当然,也可以在启动时指定配置文件:
$ ./bin/mysqld_safe --defaults-file=/home/mysql/mysql57/conf/my.cnf --user=mysql &

这个时候就会一启动时指定的配置文件为准。
MySQL 数据库参数文件的作用和 Oracle 数据库的参数文件极其类似,不同 的是,Oracle 实例在启动时若找不到参数文件,是不能进行装载(mount)操作的。 MySQL 稍微有所不同,MySQL 实例可以不需要参数文件,这时所有的参数值取 决于编译 MySQL 时指定的默认值和源代码中指定参数的默认值。 MySQL 数据库的参数文件是以文本方式进行存储的。可以直接通过一些常用 的文本编辑软件进行参数的修改。

参数的查看和修改
可以通过命令 show variables 查看数据库中的所有参数,也可以通过 LIKE 来 过滤参数名,前面查找数据库引擎时已经展示过了。从 MySQL 5.1 版本开始,还 可以通过 information_schema 架构下的 GLOBAL_VARIABLES 视图来进行查找,推 荐使用命令 show variables,使用更为简单,且各版本的 MySQL 数据库都支持。
参数的具体含义可以参考 MySQL 官方手册:
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.htm
MySQL 数据库中的参数可以分为两类:动态(dynamic)参数和静态(static)参 数。
同时从作用范围又可以分为全局变量和会话变量。 动态参数意味着可以在 MySQL 实例运行中进行更改,静态参数说明在整个 实例生命周期内都不得进行更改,就好像是只读(read only)的。
全局变量(GLOBAL)影响服务器的整体操作。 会话变量(SESSION/LOCAL)影响某个客户端连接的操作。
举个例子,用 default_storage_engine 来说明,在服务器启动时会初始化一 个名为 default_storage_engine,作用范围为 GLOBAL 的系统变量。之后每当有一 个客户端连接到该服务器时,服务器都会单独为该客户端分配一个名为 default_storage_engine,作用范围为 SESSION 的系统变量,该作用范围为 SESSION 的系统变量值按照当前作用范围为 GLOBAL 的同名系统变量值进行初始化。 可以通过 SET 命令对动态的参数值进行修改。
SET 的语法如下:
SET l [global l session ] system_var_name= expr l [ @@global.l @@session.] system_var_name= expr 比如: SET read_ buffer_size=524288;
SET @@global.read_ buffer_size=524288;
MySQL 所有动态变量的可修改范围,可以参考 MySQL 官方手册的 Dynamic System Variables 的相关内容: https://dev.mysql.com/doc/refman/5.7/en/dynamic-system-variables.html
实例:

具体的参数可见:global_variables 系统表;下面会介绍到
数据目录
我们知道像 InnoDB、MyIASM 这样的存储引擎都是把表存储在磁盘上的,而 操作系统用来管理磁盘的那个东东又被称为文件系统,所以用专业一点的话来表 述就是:像 InnoDB、MyISAM 这样的存储引擎都是把表存储在文件系统上的。当 我们想读取数据的时候,这些存储引擎会从文件系统中把数据读出来返回给我们, 当我们想写入数据的时候,这些存储引擎会把这些数据又写回文件系统。

确定Mysql中的数据目录
show variables like ‘datadir’;

这个目录可以通过配置文件进行修改,由我们自己定义。

数据目录中存放的是什么?

我们创建的数据库、表、视图和触发器等用户数据。
1)数据库在文件系统中的表示:
比如我们创建了一个名为test的数据库,mysql则会在文件目录下新建一个同名的文件夹;在该文件夹下面新建一个名为db.opt的文件,这个文件中包含了该数据库的各种数据,比如数据库的字符集和比较规则。

2)表结构的定义
比如我们在数据库中新建一个名为tb_test的表,则会在目录下创建一个名为tb_test.frm的用于描述表结构的文件。这些文件都是以二进制的格式进行存储的。

3)表中的数据,则分为MyISAM和InnoDB每个存储引擎的存储方式都不一样。
具体的参见https://blog.csdn.net/baidu_38339840/article/details/122084964

log日志文件
在服务器运行过程中,会产生各种各样的日志。比如常规的查询日志、错误日志、二进制日志、redo日志、undo日志、日志文件记录了影响mysql数据库的各种类型活动。

具体如下:
错误日志(error log)
慢查询日志(slow query log)
查询日志(query log)
二进制文件(bin log)
这些日志在mysql入门到精通中都有仔细的研究

Mysql中的系统自带库 performance_schema
这个数据库里主要保存 MySQL 服务器运行过程中的一些状态信息,算是对 MySQL 服务器的一个性能监控。包括统计最近执行了哪些语句,在执行过程的每 个阶段都花费了多长时间,内存的使用情况等等信息

Sys
这个数据库主要是通过视图的形式把 information_schema 和 performance_schema 结合起来,让程序员可以更方便的了解 MySQL 服务器的一 些性能信息。

Information_schema
这个数据库保存着 MySQL 服务器维护的所有其他数据库的信息,比如有哪 些表、哪些视图、哪些触发器、哪些列、哪些索引。这些信息并不是真实的用户 数据,而是一些描述性信息,有时候也称之为元数据。

mysql
这个数据库核心,它存储了 MySQL 的用户账户和权限信息,一些存储过程、 事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息 等。

复制信息表
复制信息表在从库复制主库的数据期间,用于保存从主库转发到从库的 binlog(二进制日志)事件,记录有关 relay log(中继日志)当前状态和位置的 信息
文章转自:Mysql中的目录和文件详解_Java-答学网

作者:答学网,转载请注明原文链接:http://www.dxzl8.com/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL 的配置文件是一个重要的组成部分,它决定了 MySQL 服务器的行为和功能。下面是 MySQL 配置文件的一些重要参数的详解: 1. `datadir`:指定 MySQL 数据文件的存储路径。默认情况下,数据文件存储在 `/var/lib/mysql` 目录下。 2. `port`:指定 MySQL 服务器监听的端口号。默认端口号是 3306。 3. `bind-address`:指定 MySQL 服务器绑定的 IP 地址。默认情况下,它绑定在所有可用的 IP 地址上。 4. `max_connections`:指定允许的最大并发连接数。这个值取决于你的硬件和应用程序的需求。 5. `character_set_server`:指定服务器默认字符集。见的字符集有 utf8、utf8mb4 等。 6. `collation_server`:指定服务器默认的排序规则。它与字符集相关,用于确定字符串比较和排序的规则。 7. `log_error`:指定错误日志文件的路径。MySQL 会将错误信息记录在这个文件,以便进行故障排查。 8. `slow_query_log`:启用慢查询日志功能。当查询执行时间超过设定阈值时,将会被记录在慢查询日志。 9. `innodb_buffer_pool_size`:指定 InnoDB 存储引擎使用的缓冲池大小。这个参数决定了 InnoDB 存储引擎能够缓存的数据量。 10. `innodb_log_file_size`:指定 InnoDB 存储引擎的日志文件大小。这个参数影响到事务处理的性能和恢复过程的速度。 这些只是 MySQL 配置文件的一部分参数,还有很多其他参数可以根据需求进行配置。配置文件的路径通常是 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`,具体路径可能因操作系统而异。在修改配置文件后,需要重启 MySQL 服务器使修改生效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值