36. 日志类型及用途
-
错误日志:记录启动失败、崩溃等严重问题(默认开启)。
-
慢查询日志:记录执行时间超过阈值的 SQL(用于优化)。
-
二进制日志:记录数据变更(用于主从复制和恢复)。
-
常规查询日志:记录所有 SQL 语句(慎用,影响性能)。
37. MySQL 8.0 默认开启的日志
-
错误日志 :
/var/log/mysql/error.log
。 -
二进制日志 :
/var/lib/mysql/binlog.000001
。
38. 常规查询日志 vs 慢查询日志
-
常规查询日志:记录所有 SQL 语句(包括连接信息)。
-
慢查询日志 :仅记录执行时间超过
long_query_time
的 SQL(默认 10 秒)。
39. 日志同时保存到文件和表
-
配置:
[mysqld] log_output=FILE,TABLE slow_query_log=1 general_log=1
-
查看日志表:
sqlSELECT * FROM mysql.slow_log; SELECT * FROM mysql.general_log;
40. 刷新日志命令
-
命令 :
FLUSH LOGS;
或mysqladmin flush-logs
。 -
影响:
-
创建新的二进制日志文件。
-
重新打开常规查询日志和慢查询日志文件。
-
41. Performance Schema 的作用
-
目的:实时监控服务器性能(如锁等待、内存使用)。
-
常用表:
-
events_waits_current
:当前等待事件。 -
file_summary_by_event_name
:文件 I/O 统计。
-
42. sys Schema 的作用
-
功能:简化 Performance Schema 数据的查看。
-
示例视图:
-
sys.innodb_lock_waits
:显示锁冲突信息。 -
sys.schema_table_statistics
:表访问统计。
-
43. 审计功能配置
-
正确 :
audit_log_filter_linux_install.sql
脚本用于配置基于规则的审计。 -
步骤:
-
执行脚本:
mysql -u root -p < audit_log_filter_linux_install.sql
。 -
启用审计插件:
INSTALL PLUGIN audit_log SONAME 'audit_log.so';
。
-
44. MySQL Enterprise Monitor 功能
-
持续监控:实时跟踪数据库性能。
-
自动预警:根据阈值发送告警(如 CPU 使用率超过 90%)。
-
可视化分析:生成查询执行时间图表。
-
账户管理:审计用户权限变更。
45. SHOW PROCESSLIST 输出列
-
Id:连接 ID。
-
User:执行 SQL 的用户。
-
Host:客户端 IP。
-
db:当前使用的数据库。
-
Command :线程状态(如
Query
、Sleep
)。 -
Time:线程处于当前状态的秒数。
-
State :操作详情(如
Sending data
)。 -
Info:正在执行的 SQL 片段。
46. 用户账户存储位置
-
位置 :
mysql.user
表。 -
查看所有用户:
sqlSELECT User, Host FROM mysql.user;
47. 检查通配符用户
-
方法:
sqlSELECT User, Host FROM mysql.user WHERE Host LIKE '%';
-
风险 :
'user'@'%'
允许从任何 IP 连接,存在安全隐患。