知识点归纳之mysql数据库

11 篇文章 0 订阅
6 篇文章 0 订阅

每个项目都有自己的文件结构
那么mysql作为一个项目也是有文件结构 不通文件代表了不同的功能模块
下面让我们来介绍一下mysql的文件吧↓↓↓↓↓↓↓↓
MySQL主要文件类型有如下几种:
1、参数文件:指定某些初始化参数,/etc/my.cnf 看到文件应该就知道作用了吧,具体自己打开看看里面参数设置。
2、日志文件:错误日志、慢查询日志、全查询日志、二进制日志、中继日志、Redo 日志、Undo 日志
3、Socket文件:当用 linux 的 mysql 命令行窗口登录的时候需要的文件
4、Pid 文件:mysql 启动生成的进程文件 linux熟悉的人都知道 特不是mysql独有的 是系统性质的文件
5、MySQL表结构文件:存放 MySQL表结构定义文件

参数文件

1.1 参数文件内容

[mysqld]
#basedir=/usr/local/mysql
basedir=/usr/local/mysql5730
datadir=/usr/local/mysql/data
port=3306
#socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/log.err
server_id=55623306
log-bin
skip-name-resolve
character_set_server=utf8mb4

2.1 日志文件

日志文件记录了影响 mysql 数据库的各种类型活动,
常见的日志文件有错误日志、二进制日志、慢查询日志、全查询日志、redo 日志、undo 日志。
错误日志对 mysql的启动、运行、关闭过程进行了记录,
mysql dba 在遇到问题时候,第一时间应该查看这个错误日志文件,
该文件不但记录了出错信息,还记录了一些警告信息以及正确信息,
这个 error 日志文件类似于 oracle 的 alert 文件,只不过默认情况下是以 error 结尾。
可以通过 show variables like 'log_error';
DBA 在遇到问题的时候,第一时间应该查看这个错误日志文件,
该文件不但记录了出错信息,还记录了一些警告信息以及正确信息,
这个 error 日志文件类似于 Oracle的 alert 文件,只不过默认情况下是以 err 结尾。
可以通过“show variables like 'log_error';”命令查看错误日志的路径。

2.1.2 全查询日志

全查询日志记录了所有对数据库请求的信息,
正确的 SQL 才会被记录下来(错误写法的 SQL 语句不会记录),
包括 show、查询 select 语句、权限不足的语句(ERROR 1044 (42000): Access denied for user)。
默认位置在变量 datadir 下,默认文件名为:主机名.log。
MySQL 的通用查询日志默认情况下是不开启的。当需要进行采样分析时手工开启:

mysql> show variables like 'general_log';


##日志开启
mysql> SET GLOBAL general_log=1;
mysql> show variables like 'general_log';
默认名称为:变量 datadir 下:主机名.log

2.1.3 二进制日志Binlog

Binlog 是 MySQL 中一个很重要的日志,记录了对数据库进行变更的操作,
但是不包括 select操作以及 show 操作,因为这类操作对数据库本身没有没有修改。
如果想记录 select和 show 的话,那就需要开启全查询日志。
另外 binlog 还包括了执行数据库更改操作时间和执行时间等信息。
binlog 是 MySQL Server 层记录的二进制日志文件。


二进制的主要作用有如下 2 个:
(1 )恢复 recovery 。某些数据的恢复需要二进制日志,
在全库文件恢复后,可以在此基础上通过二进制日志进行 point-to-time 的恢复(mysqldump 全量恢复+binlog增量恢复)。
(2 )复制(replication )。其原理和恢复类似,
通过复制和执行二进制日志使得一台远程的 mysql数据库(slave)于一台 mysql 数据库(master)进行实时同步。

2.1.4慢查询日志

当查询超过一定时间没有返回结果的时候,才会记录进慢查询日志。
• 慢查询日志可以帮助 DBA 找出执行效率缓慢的 SQL 语句,为数据库优化工作提供帮助。
• 慢查询日志默认是不开启的,建议开启慢查询日志。
• 当需要进行采样分析时手工开启。

慢查询日志是否开启:
mysql> show variables like ‘%slow_%’;
#设置开启
mysql> set global slow_query_log=1;

slow_query_log=ON 开启  OFF关闭

2.1.5 Redo

查看参数设置:show variables like ‘innodb%log%’;

记录 InnoDB 等支持事务的存储引擎执行事务时产生的日志。
事务型存储引擎用于保证原子性、一致性、隔离性和持久性。
其变更数据不会立即写到数据文件中,而是写到事务日志中。
事务日志文件名为“ib_logfile0”和“ib_logfile1”,默认存放在表空间所在目录。

2.1.6 undo

开始从 L SQL 理 层面非常方便的管理 Undo 表空间,MySQL 服务启动后,
默认有两个 Undo 表空间:undo01,undo02。这两个默认产生的 Undo 表空间文件,
不能在 SQL 层面来管理。直接删除会被 MySQL 阻止。

2.1.7 中继日志

从主服务器的二进制日志文件中复制而来的事件,
并保存为二进制的日志文件。
中继日志也是二进制日志,用来给 slave 库恢复。

3.1socket 文件

Linux 系统下 本地连接 mysql 可以采用 linux 域套接字 socket 方式 ,
需要一个套接字 socket 发文件,
可以由参数 socket控制,一般默认在/tmp 目录下

如果 socket 文件丢失,不能从本地登录 mysql ,通过重启的方式来重新生成。

4.1 pid文件

当 mysql 实例启动的时候,会将自己的进程 id 写入一个文件中,
该文件即为 pid 文件,由参数 pid_file 控制,
默认路径位于数据目录下,可以通过以下方式查看:
mysql> show variables like '%datadir%';
mysql> show variables like 'pid_file';

5.1 表文件

innodb 包括 ibd 和 frm,当你启用了 innodb_file_per_table,表被存储在他们自己的表空间里。
mysql> show variables like 'innodb_file_per_table';

innodb_data_file_path 用来指定 innodb tablespace 文件,
如果我们不在 My.cnf 文件中指定innodb_data_home_dir 和 innodb_data_file_path 
那么默认会在 datadir 目录下创建 ibdata1 作为 innodb tablespace。
当你启用了 innodb_file_per_table,表被存储在他们自己的表空间里,
但是共享表空间仍然在存储其它的 InnoDB 内部数据:
✓ 数据字典,也就是 InnoDB 表的元数据
✓ 变更缓冲区
✓ 双写缓冲区
✓ 撤销日志

frm为表结构文件
[root@Jeames pecvd]# strings aoi.frm

ibd为数据文件
[root@Jeames pecvd]# strings aoi.ibd

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值