配置Zipkin存储数据到MySQL时数据库无数据生成,是否启动命令有误?
问题排查与解决方案
你的启动方式确实存在参数配置顺序错误:
- Java执行jar包的命令规则为:
java [选项/环境变量/系统属性] -jar jar包路径 [应用入参],你将存储相关的环境变量放在了jar包路径之后,会被识别为应用主类的入参,Zipkin无法读取这些存储配置,因此仍使用默认的内存存储,不会写入MySQL。
修正后的启动命令
Linux/macOS 环境
将所有环境变量移到-jar参数前面,同时补充MySQL的必填配置项:
STORAGE_TYPE=mysql MYSQL_USER=root MYSQL_PASS=你的数据库密码 MYSQL_JDBC_URL=jdbc:mysql://<数据库地址>:3306/zipkin?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai java -jar zipkin-xx.xx.x-exec.jar
Windows 环境
需要先单独设置环境变量再启动:
set STORAGE_TYPE=mysql set MYSQL_USER=root set MYSQL_PASS=你的数据库密码 set MYSQL_JDBC_URL=jdbc:mysql://<数据库地址>:3306/zipkin?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai java -jar zipkin-xx.xx.x-exec.jar
补充校验点
- 提前在MySQL中创建空的
zipkin数据库,无需手动建表,Zipkin首次连接成功后会自动初始化表结构 - 若你的MySQL部署在本地、端口为默认3306、密码为空,可以省略
MYSQL_JDBC_URL和MYSQL_PASS参数 - 启动成功后先上报1-2条测试链路数据,再检查数据库的
zipkin_spans等表是否有数据写入
内容的提问来源于stack exchange,提问作者Luke Mao
相关产品推荐
相关产品推荐

