微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Squirrel-Sql 客户端无法连接到 MySQL 8,并显示“尝试打开 SQL 连接时发生意外错误”

如何解决Squirrel-Sql 客户端无法连接到 MySQL 8,并显示“尝试打开 SQL 连接时发生意外错误”

我一直在使用 Squirrel sql 从我的 Windows 10 笔记本电脑查询 MysqL 5.7 数据库。我们现在开始升级MysqL 8,但是当我尝试连接到 MysqL 8 实例时,我收到错误消息,“尝试打开 sql 连接时发生意外错误。class java.lang.NullPointerException: null”。堆栈跟踪如下所示。我发现一个 similar question about this error 建议增加内存分配,我做了但没有帮助。 (由于 squirrel-sql.bat 文件根本没有设置 -Xmx,所以我添加了它。文档显示 javaw 认为 256m,所以我去了 -Xmx4096m 但同样的错误。)

顺便说一句,我使用的是 Java corretto-11.0.8.10.1。

有人成功地将 Squirrel-sqlMysqL 8 结合使用吗?

这是堆栈跟踪:

java.lang.NullPointerException
    at com.MysqL.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:3005)
    at com.MysqL.jdbc.MysqLIO.sendConnectionAttributes(MysqLIO.java:1916)
    at com.MysqL.jdbc.MysqLIO.proceedHandshakeWithPluggableAuthentication(MysqLIO.java:1845)
    at com.MysqL.jdbc.MysqLIO.doHandshake(MysqLIO.java:1215)
    at com.MysqL.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2255)
    at com.MysqL.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2286)
    at com.MysqL.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2085)
    at com.MysqL.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:795)
    at com.MysqL.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:44)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
    at com.MysqL.jdbc.Util.handleNewInstance(Util.java:404)
    at com.MysqL.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:400)
    at com.MysqL.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:327)
    at net.sourceforge.squirrel_sql.fw.sql.sqlDriverManager.getConnection(sqlDriverManager.java:147)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:136)
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.lambda$execute$0(OpenConnectionCommand.java:93)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)

解决方法

我通过 Maven 下载了 mysql-connector-java-8.0.21.jar 并将其复制到我的 Squirrel-SQL lib 目录并重新启动了 Squirrel-Sql。问题解决了!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。