MySQL 运维很关键!了解数据库基本配置和性能状态,是确保其稳定运行的重要环节。深入知晓 MySQL 配置项、连接数、Binlog、GTID、InnoDB 等关键参数,能更好掌握运行情况,提前发现潜在问题。
本文介绍用一系列 SQL 查询语句快速获取 MySQL 基本配置、连接数、Binlog 和 GTID 配置以及 InnoDB 配置信息和监控指标。还提供简便脚本,一键获取所有信息,为 MySQL 巡检带来便利。
一 获取基本配置信息
说明 |
执行语句 |
是否区分表名大小写 |
SHOW VARIABLES LIKE 'lower_case_table_names'; |
MySQL 服务端口 |
SHOW VARIABLES LIKE 'port'; |
MySQL socket 文件路径 |
SHOW VARIABLES LIKE 'socket'; |
是否跳过域名解析 |
SHOW VARIABLES LIKE 'skip_name_resolve'; |
数据库字符集 |
SHOW VARIABLES LIKE 'character_set_server'; |
服务器默认的校对规则 |
SHOW VARIABLES LIKE 'collation_server'; |
交互式连接超时时间(秒) |
SHOW VARIABLES LIKE 'interactive_timeout'; |
非交互式连接超时时间(秒) |
SHOW VARIABLES LIKE 'wait_timeout'; |
事务隔离级别 |
SHOW VARIABLES LIKE 'tx_isolation'; |
数据文件存放位置 |
SHOW VARIABLES LIKE '%datadir%'; |
允许的最大数据包大小 |
SHOW VARIABLES LIKE 'max_allowed_packet'; |
每个线程堆栈的大小 |
SHOW VARIABLES LIKE 'thread_stack'; |
线程缓存的大小 |
SHOW VARIABLES LIKE 'thread_cache_size'; |
可以打开的表的数量 |
SHOW VARIABLES LIKE 'table_open_cache'; |
内部临时表的最大大小 |
SHOW VARIABLES LIKE 'tmp_table_size'; |
内存中 HEAP 表的最大大小 |
SHOW VARIABLES LIKE 'max_heap_table_size'; |
MySQL 主进程文件的位置 |
SHOW VARIABLES LIKE 'pid_file'; |
错误日志文件的位置 |
SHOW VARIABLES LIKE 'log_error'; |
慢查询日志文件的位置 |
SHOW VARIABLES LIKE 'slow_query_log_file'; |
慢查询时间阈值 |
SHOW VARIABLES LIKE 'long_query_time'; |
二 获取连接数配置信息
说明 |
执行语句 |
最大连接数 |
SHOW VARIABLES LIKE 'max_connections'; |
服务器启动以来已使用的最大连接数 |
SHOW status LIKE 'Max_used_connections'; |
达到最大连接数的时间点 |
SHOW STATUS LIKE 'Max_used_connections_time'; |
连接失败次数上限 |
SHOW VARIABLES LIKE 'max_connect_errors'; |
通过 MySQL X Protocol 已接受的连接数 |
SHOW STATUS LIKE 'Mysqlx_connections_accepted'; |
通过 MySQL X Protocol 已关闭的连接数 |
SHOW STATUS LIKE 'Mysqlx_connections_closed'; |
三 获取 Binlog 配置信息
说明 |
执行语句 |
Binlog 文件列表 |
SHOW BINARY LOGS; |
是否启用 Binlog |
SHOW VARIABLES LIKE 'log_bin'; |
Binlog 同步频率 |
SHOW VARIABLES LIKE 'sync_binlog'; |
Binlog 格式 |
SHOW VARIABLES LIKE 'binlog_format'; |
文件路径 |
SHOW VARIABLES LIKE 'log-bin'; |
Binlog 索引文件位置 |
SHOW VARIABLES LIKE 'log_bin_index'; |
单个 Binlog 最大大小 |
SHOW VARIABLES LIKE 'max_binlog_size'; |
Binlog 基本名字 |
SHOW VARIABLES LIKE 'log_bin_basename'; |
Binlog 文件过期时间 |
SHOW VARIABLES LIKE 'expire_logs_days'; |
MySQL 服务器的唯一 ID |
SHOW VARIABLES LIKE 'server_id'; |
四 获取 GTID 配置信息
说明 |
执行语句 |
是否开启 GTID 模式 |
SHOW VARIABLES LIKE 'gtid_mode'; |
是否强制 GTID 一致性 |
SHOW VARIABLES LIKE 'enforce_gtid_consistency'; |
查询GTID执行的详细情况 |
SELECT * FROM mysql.gtid_executed; |
是否开启级联复制 |
SHOW VARIABLES LIKE 'log_slave_updates'; |
五 InnoDB 配置信息
说明 |
执行语句 |
InnoDB 版本 |
SHOW VARIABLES LIKE 'innodb_version'; |
是否为每个 InnoDB 表创建单独的文件 |
SHOW VARIABLES LIKE 'innodb_file_per_table'; |
InnoDB 缓存池大小 |
SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; |
InnoDB 日志文件大小 |
SHOW VARIABLES LIKE 'innodb_log_file_size'; |
InnoDB 可以有多少线程同时运行 |
SHOW VARIABLES LIKE 'innodb_thread_concurrency'; |
缓冲池中脏页的最大百分比 |
SHOW VARIABLES LIKE 'innodb_max_dirty_pages_pct'; |
InnoDB的最大写入 IO 能力 |
SHOW VARIABLES LIKE 'innodb_io_capacity_max'; |
日志缓冲区大小 |
SHOW VARIABLES LIKE 'innodb_log_buffer_size'; |
事务提交时刷新日志的频率 |
SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit'; |
InnoDB IO 容量 |
SHOW VARIABLES LIKE 'innodb_io_capacity'; |
缓冲池实例数 |
SHOW VARIABLES LIKE 'innodb_buffer_pool_instances'; |
六 监控指标
说明 |
执行语句 |
全局状态信息 |
SHOW GLOBAL STATUS; |
当前所有线程的信息 |
SHOW PROCESSLIST; |
当前打开的连接数 |
SHOW STATUS LIKE 'Threads_connected'; |
当前线程缓存中有多少空闲线程 |
SHOW STATUS LIKE 'Threads_cached'; |
从最近一次服务启动,已创建线程的数量 |
SHOW STATUS LIKE 'Threads_created'; |
当前激活的(非睡眠状态)线程数 |
SHOW STATUS LIKE 'Threads_running'; |
慢查询次数 |
SHOW status LIKE 'Slow_queries'; |
InnoDB 读取的行数 |
SHOW status LIKE 'Innodb_rows_read'; |
InnoDB 插入的行数 |
SHOW status LIKE 'Innodb_rows_inserted'; |
InnoDB 更新的行数 |
SHOW status LIKE 'Innodb_rows_updated'; |
InnoDB 删除的行数 |
SHOW status LIKE 'Innodb_rows_deleted'; |
好啦,松哥这里列举了一些常见的指标和命令,公众号后台回复 MySQL指令
可以下载以上脚本。