端口占用时应该怎么定位?

如果你看到 Address already in usebind: address already in use,或服务启动后很快又退出,优先把问题当作“端口规划冲突”处理。

常见默认端口:

  • MySQL:3306
  • ClickHouse TCP / HTTP:9000 / 8123
  • Prometheus / Grafana:9090 / 3000
  • node_exporter9100

先在目标机检查实际占用:

ss -lntp

建议重点核对:

  1. 旧实例、旧 exporter 或其他中间件是否还在监听同一端口。
  2. 多实例场景里,是否重复使用了同一个 mysql_portinstance_id
  3. 监控侧是否把 prometheus_portgrafana_portnode_exporter_portmysqld_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 还会影响一组派生端口;只改主端口、不看派生端口,仍然可能冲突。

相关文档: