Skip to content

一、使用MySQL持久化

默认: 使用的H2数据库存储

  • 在当前目录文件: /skywalking/apache-skywalking-apm-bin/config/application.yml
  1. 修改config目录下的 application.yml, 使用 MySQL 作为持久化存储的仓库
  1. 修改 mysql 连接配置
yml
  mysql:
    properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest?rewriteBatchedStatements=true"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root@1234}
      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
      dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
      dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
      dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}
    maxSizeOfBatchSql: ${SW_STORAGE_MAX_SIZE_OF_BATCH_SQL:2000}
    asyncBatchPersistentPoolSize: ${SW_STORAGE_ASYNC_BATCH_PERSISTENT_POOL_SIZE:4}
  1. 需要添加 mysql数据驱动包,因为在lib目录下是没有mysql数据驱动包的,所以修改完配置启动是会报错,启动失 败的。

  • 默认使用h2,不会持久化,重启skyWalking之前的数据会丢失。
  • 使用mysql作为持久化存储的仓库。
  1. 添加 mysql-connect-java-xxx.jar 数据驱动包到 oap-libs 目录下:
shell
$ mv mysql-connect-java-xxx.jar /skywalking/apache-skywalking-apm-bin/oap-libs/
  1. 启动 SkyWalking
shell
$ sh /skywalking/apache-skywalking-apm-bin/bin/startup.sh
  1. 查看 swtest 数据库,可以看到生成了很多数据库表。
  1. 测试,重新启动是否 skywalking, 验证跟踪数据是否丢失。

访问UI: http://localhost:38080