数据库与中间件命令¶
这个页面整理常见数据库和中间件的基础排查命令,适合服务启动失败、连接失败、性能异常和日志分析场景。
MySQL¶
# 查看服务状态
systemctl status mysql || systemctl status mysqld
# 查看错误日志
tail -n 100 /var/log/mysql/error.log 2>/dev/null
tail -n 100 /var/log/mysqld.log 2>/dev/null
# 查看 MySQL 状态
mysqladmin -uroot -p status
# 连接数据库
mysql -h 127.0.0.1 -P 3306 -uroot -p
SQL 排查:
SHOW PROCESSLIST;
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';
SHOW ENGINE INNODB STATUS\G
延伸案例: MySQL 启动失败排查。
Redis¶
# 查看服务状态
systemctl status redis || systemctl status redis-server
# 测试连接
redis-cli ping
redis-cli -h 127.0.0.1 -p 6379 ping
# 查看信息
redis-cli info
# 查看慢查询
redis-cli slowlog get 10
常用排查:
# 查看内存
redis-cli info memory
# 查看客户端
redis-cli client list
# 查看配置
redis-cli config get maxmemory
延伸案例: Redis 连接失败排查。
Nginx¶
# 检查配置
nginx -t
# 输出完整配置
nginx -T
# 查看服务状态
systemctl status nginx
# 查看错误日志
tail -n 100 /var/log/nginx/error.log
# 查看访问日志
tail -n 100 /var/log/nginx/access.log
访问日志分析:
# 统计状态码
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
# 查看访问最多的 IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head
延伸案例:
RabbitMQ¶
# 查看服务状态
systemctl status rabbitmq-server
# 查看节点状态
rabbitmqctl status
# 查看队列
rabbitmqctl list_queues
# 查看连接
rabbitmqctl list_connections
# 查看用户
rabbitmqctl list_users
常见问题:
- 队列堆积。
- 连接数过多。
- 磁盘水位触发 flow control。
- Erlang cookie 不一致导致集群异常。
Kafka¶
# 查看 topic
kafka-topics.sh --bootstrap-server <broker>:9092 --list
# 查看 topic 详情
kafka-topics.sh --bootstrap-server <broker>:9092 --describe --topic <topic>
# 查看消费组
kafka-consumer-groups.sh --bootstrap-server <broker>:9092 --list
# 查看消费组 lag
kafka-consumer-groups.sh --bootstrap-server <broker>:9092 --describe --group <group>
常见问题:
- 消费 lag 增长。
- broker 磁盘满。
- ISR 不足。
- topic 分区和副本配置不合理。
通用排查顺序¶
- 服务是否运行。
- 端口是否监听。
- 本机是否能连接。
- 应用机器是否能连接。
- 认证、权限、配置是否一致。
- 查看错误日志和慢日志。