配置mysql
使用选项文件的原因
1.每次启动服务器时,不需要在命令行上指定选项– 更方便– 复杂选项不易出错•
2.使得可以通过查看选项文件以在一个位置查看服务器配置•
3.可以使用分组选项创建多个配置,每个配置都在其自己的配置文件中– 使用不同的配置在同一主机上启动多个服务器– 使用替代配置启动测试或开发服务器
选项文件位置
•1.MySQL 服务器在标准位置查找文件•
2.Linux 和 Windows 的标准选项文件名不同:– 在 Linux 中,使用 my.cnf 文件– 在 Windows 中,使用 my.ini 文件— MySQL 也识别 my.cnf,但 my.ini 是标准的•
3.没有单个 my.cnf 或 my.ini 文件– 服务器可能会从不同位置读取多个 my.cnf 或 my.ini 文件
选项组名称组的示例包括:
1. [client]:适用于所有客户端程序的选项– 通常用于指定所有客户端通用的连接参数•
2. [mysql] 和 [mysqldump]:分别适用于 mysql 和 mysqldump 客户机的选项– 其他客户机程序读取具有自己名称的选项组• [server]:适用于所有服务器程序或脚本的选项•
3. [mysqld], [mysqld-8.0], 和 [mysqld_safe]:适用于特定服务器程序或脚本的选项
监控mysql
使用日志文件监控 MySQLMySQL 使用多种类型的日志来记录有关服务器活动的信息。
1.错误日志( Error log ):与启动、关闭和异常情况有关的诊断信息
2.常规查询日志( General query log ):服务器从客户端收到的所有语句
3.慢速查询日志( Slow query log ):需要很长时间执行的查询
4. 审计日志( Audit log ):企业版基于策略的审计
5.二进制日志( Binary log ):修改数据的语句
日志文件特征•
1.可能会占用大量磁盘空间
2.可以存储在文件中
3.可以存储在表中–
4.仅限常规查询和慢速查询日志
5. 以文本格式书写– 二进制日志除外
日志文件轮转
日志文件会随着时间的推移占用空间,这就需要定期备份和删除旧日志文件并重新开始记录到新日志文件– 如果使用二进制日志进行复制,这种操作务必要小心• 备份后,需要刷新日志。 刷新日志:– 会创建新的二进制日志文件– 关闭并重新打开常规和慢速查询日志文件— 要创建新日志,必须在刷新之前重命名当前日志文件• 定期安排日志文件轮转时:– 可以自己创建脚本或使用 MySQL 提供的 mysql-log-rotate 脚本
性能模式设置表
可以通过修改 setup_% 表的内容来配置性能模式
1. setup_actors:监控哪些前台线程(客户端连接)
2. setup_objects:监控哪些数据库对象(表、存储过程、触发器、事件)
3.setup_threads:检测哪些线程类
4.setup_instruments:性能模式收集哪些服务器度量
5. setup_consumers:检测事件的存储位置
顶级检测组件•
1.idle:被检测的空闲事件。该检测没有子组件。
2.error:被检测的错误事件。该检测没有子组件。
3. memory:被检测的内存事件。
4.stage:被检测的阶段事件。
5.statement:被检测的语句事件。
6. transaction:被检测的事务事件。 该检测没有其他组件 。
7.wait:被检测的等待事件
sys 模式
性能模式中有许多检测和表,可能很难知道要监控哪个。
sys 模式:• 帮助 DBA 解释典型调优和诊断用例的性能模式• 它提供了:– 视图:将性能模式数据汇总为更易于理解的格式– 存储过程:协助 DBA 配置性能模式并生成诊断报告– 存储函数:查询性能模式配置并以不同方式格式化输出
显示进程列表•
SHOW PROCESSLIST 显示哪些进程线程正在连接上运行– 需要 PROCESS 权限,才能查看自己之外的所有连接的线程• SHOW PROCESSLIST 将生成以下列:–
Id: 连接标识符–
User: 发出语句的
MySQL 用户–
Host: 发出语句的客户机的主机名–
db: 选择默认数据库,否则为NULL–
Command: 线程正在执行的命令类型–
Time: 线程处于当前状态的时间(秒)–
State: 指示线程正在执行的内容的操作、事件或状态–
Info: 关联语句的前 100 个字符或 NULL— 使用 SHOW FULL PROCESSLIST 查看完整的语句