09 - MySQL management, Log management

09 - MySQL 管理、日志管理

1. 系统数据库

系统自带四个数据库

1.1. mysql 数据库

存储 MySQL 系统的核心信息,包括用户权限、数据库和表的元数据、全局变量等

1.2. information_schema

提供关于数据库服务器所维护的所有其他数据库的信息。这是一个只读数据库,用户可以通过查询其中的表来获取数据库的元数据

1.3. performance_schema

1.4. sys

提供了一组视图和存储过程,用于简化对 performance_schema 和 information_schema 数据库的查询。sys 数据库是 MySQL 5.7 引入的,旨在提供更易用的性能监控工具

2. 常用工具

2.1. mysql

-e 可以指定SQL语句,用于脚本文件

执行完之后马上退出,不会登入

2.2. mysqladmin

管理工具

可以在不登陆的情况下管理数据库,表等等

2.3. mysqlbinlog

二进制日志查看工具

二进制日志文件以二进制格式保存

2.4. mysqlshow

客户端对象查找关系,查找存在哪些数据库,数据库中的表,表中的列或者索引

数据库、表、字段 统计信息

2.5. mysqldump

备份数据库或在不同数据库之间进行数据迁移...

2.6. mysqlimport/source

数据导入工具...

可以导入 .sql 文件的全部语句,自动化执行,完成导入...

3. 日志:错误日志

错误日志是 MySQL 最重要的日志之一,记录了数据库服务器启动、运行和关闭过程中的错误信息、警告信息和启动信息。

/var/log/mysql/error.log

4. 日志:二进制日志

二进制日志用于主从复制和数据恢复。它记录了所有修改数据库数据的语句和数据定义语言语句

BINLOG 记录了 DDL 和 DML 语句,但不包含 SELECT SHOW 等语句

4.1. 作用

  1. 灾难时的数据恢复

  2. MySQL 的主从复制

  3. 默认开启...

4.2. 日志格式

  1. STATEMENT 记录 SQL 语句

  2. ROW 记录每一行的数据变更

  3. MIXED 混合前两种

SHOW VARIABLES LIKE '%binlog_format%';

-- 现在默认是 ROW?

4.3. 日志查看

mysqlbinlog logfile...

但是行 格式是看不到数据的,需要重构为 SQL 语句的格式

5. 日志:查询日志

记录所有的操作语句,二进制中不包含查询数据的SQL语句...

如果需要开启,要自己开,默认关闭...

6. 日志:慢查询日志

记录所有执行时间超过参数 long_query_time 值...默认未开启... 精度可以到微妙

6.1. 用途

慢查询日志用于记录执行时间超过指定阈值的查询语句,用于分析和优化慢查询,监控数据库性能瓶颈。

Last updated