【问题标题】:Error connecting to memsql with mysql J connector使用 mysql J 连接器连接到 memsql 时出错
【发布时间】:2019-07-04 20:19:27
【问题描述】:

我有 memsql 服务器版本 6.7。我可以使用我的 Spring Boot 应用程序中的 mysql java 连接器版本 5.1.47 连接到它。

但是当我将连接器版本升级到 8.0.16 时,出现以下错误 - 原因:java.sql.SQLException: Unknown system variable 'performance_schema'

跑查询显示变量;在我的 memsql 实例上,我没有看到系统变量“performance_schema”。

我可以更改 datasource.url 字符串以忽略此变量吗?是否支持任何其他最新版本的驱动程序?

【问题讨论】:

    标签: java mysql mysql-connector singlestore


    【解决方案1】:

    如果您担心 8.0.15 mysql 驱动程序中的安全问题,您可以改用 mariaDb 驱动程序。我们通常建议人们将它们与 MemSQL 一起使用: https://docs.memsql.com/client-downloads/

    MySQL 8 进行了许多重大更改(即,连接到旧版本 MySQL 的 MySQL 8 驱动程序也会出现问题:https://bugs.mysql.com/bug.php?id=90994

    【讨论】:

      【解决方案2】:

      来自https://github.com/spring-projects/spring-boot/issues/17090

      Spring Boot 2.1.5 的一个相关变化似乎是 upgraded MySQL's Java connector 从 8.0.15 到 8.0.16。 8.0.x 驱动程序应该与 MySQL 5.6、5.7 和 8.0 兼容,因此这似乎是您的配置问题,或者更有可能是驱动程序中的回归。如果您想解决这个问题,我建议您在 MySQL forums 上寻求一些帮助,并提供足够的信息以允许某人重现该问题。

      尝试 8.0.15 版本,看看效果是否更好。

      【讨论】:

      • 我的问题是在 MEMSQL 中使用 mysql 连接器。 mysql 默认有一个名为 performance_schema 的系统变量,但 MEMSQL 没有。
      • @user2456557 似乎问题在于 8.0.16 需要 performance_schema,而 8.0.15 不需要,并且由于 MEMSQL 没有,它应该适用于 8.0.15,但不适用于 8.0 .16.既然测试是一件容易的事,为什么不至少尝试一下呢?
      • 我明白这一点,但我不想尝试 8.0.15 版本,因为它有一个漏洞 - nvd.nist.gov/vuln/detail/CVE-2019-2692 仅在 8.0.16 版本中修复
      • 漏洞需要“具有登录基础设施的高权限攻击者”和“来自攻击者以外的人的人机交互”。如果您的环境从一开始就那么脆弱,那么您真的有麻烦了。至少尝试 8.0.15 看看它是否有效。这个漏洞不应该阻止你。
      • 8.0.15 有效但易受攻击。升级的重点是使用漏洞最少的依赖项。在我的工作场所,我不确定哪些风险是可以接受的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 2013-12-28
      • 2019-07-25
      • 2019-06-05
      相关资源
      最近更新 更多