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
查看日志表:
SELECT * 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
表。查看所有用户:
SELECT User, Host FROM mysql.user;
47. 检查通配符用户
方法:
SELECT User, Host FROM mysql.user WHERE Host LIKE '%';
风险:
'user'@'%'
允许从任何 IP 连接,存在安全隐患。