端口占用时应该怎么定位?
如果你看到 Address already in use、bind: address already in use,或服务启动后很快又退出,优先把问题当作“端口规划冲突”处理。
常见默认端口:
- MySQL:
3306 - ClickHouse TCP / HTTP:
9000/8123 - Prometheus / Grafana:
9090/3000 node_exporter:9100
先在目标机检查实际占用:
ss -lntp
建议重点核对:
- 旧实例、旧 exporter 或其他中间件是否还在监听同一端口。
- 多实例场景里,是否重复使用了同一个
mysql_port或instance_id。 - 监控侧是否把
prometheus_port、grafana_port、node_exporter_port、mysqld_exporter_port规划到了已有服务上。
常见调整入口:
- MySQL:
mysql_port - ClickHouse:
clickhouse_tcp_port,或clickhouse_*_port_base/instance_id - Prometheus / Grafana:
prometheus_port/grafana_port - Exporter:
node_exporter_port/mysqld_exporter_port
补充说明:
- MySQL 服务如果因为端口冲突反复启动失败,systemd 可能进一步报
start request repeated too quickly。此时先看日志根因,再参考 启动失败过快(start request repeated too quickly) 做reset-failed。 - ClickHouse 多实例场景下,
instance_id还会影响一组派生端口;只改主端口、不看派生端口,仍然可能冲突。
相关文档: