为了账号安全,请及时绑定邮箱和手机立即绑定

大佬们遇到过这个问题吗?mac 下jdbc连接mysql 8.0 失败

大佬们遇到过这个问题吗?mac 下jdbc连接mysql 8.0 失败

不负相思意 2019-06-19 09:36:56
问题描述mac下无法使用jdbc连接mysql8.0Mysql环境debian9虚拟机mysqlVer8.0.16forLinuxonx86_64(MySQLCommunityServer-GPL)#已经允许远程连接尝试方法Mac下使用IDEA,Datagrip均无法连接到虚拟机。Mac与虚拟机在同一网段,192.168.0.x,未使用代理连接。但是可以使用tableplus,mysqlworkbench等工具连接。预测为jetbrains产品有问题。测试在另外一台windows系统下,使用datagrip连接mysql,成功连接。预测mac环境有问题。编写jdbc代码测试依赖mysqlmysql-connector-java8.0.16代码publicstaticvoidmain(String[]args){Connectionconn=null;try{StringuserName="root";Stringpassword="root";Stringurl="jdbc:mysql://192.168.0.115:3306/mysql";Class.forName("com.mysql.cj.jdbc.Driver").newInstance();conn=DriverManager.getConnection(url,userName,password);System.out.println("connection");}catch(Exceptione){System.out.println("error");e.printStackTrace();}finally{if(conn!=null){try{conn.close();}catch(Exceptione){e.printStackTrace();}}}}报错com.mysql.cj.jdbc.exceptions.CommunicationsException:CommunicationslinkfailureThelastpacketsentsuccessfullytotheserverwas0millisecondsago.Thedriverhasnotreceivedanypacketsfromtheserver.atcom.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)atcom.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)atcom.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)atcom.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455)atcom.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)atcom.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)atjava.sql.DriverManager.getConnection(DriverManager.java:664)atjava.sql.DriverManager.getConnection(DriverManager.java:247)atcom.mysql.driver.MysqlDriver.main(MysqlDriver.java:23)Causedby:com.mysql.cj.exceptions.CJCommunicationsException:CommunicationslinkfailureThelastpacketsentsuccessfullytotheserverwas0millisecondsago.Thedriverhasnotreceivedanypacketsfromtheserver.atsun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)atsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)atjava.lang.reflect.Constructor.newInstance(Constructor.java:423)atcom.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)atcom.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)atcom.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)atcom.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)atcom.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:562)atcom.mysql.cj.protocol.a.NativeProtocol.readServerCapabilities(NativeProtocol.java:514)atcom.mysql.cj.protocol.a.NativeProtocol.beforeHandshake(NativeProtocol.java:404)atcom.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1450)atcom.mysql.cj.NativeSession.connect(NativeSession.java:165)atcom.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955)atcom.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)...6moreCausedby:java.io.EOFException:Cannotreadresponsefromserver.Expectedtoread4bytes,read0bytesbeforeconnectionwasunexpectedlylost.atcom.mysql.cj.protocol.FullReadInputStream.readFully(FullReadInputStream.java:67)atcom.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:63)atcom.mysql.cj.protocol.a.SimplePacketReader.readHeader(SimplePacketReader.java:45)atcom.mysql.cj.protocol.a.NativeProtocol.readMessage(NativeProtocol.java:556)...12more通用代码在windows下测试是成功连接的。感觉问题不在mysql服务器上,应该是mac下jdbc连接mysql8.0有问题,网上搜了很多,没有解决。到这里就没有头绪了。macjava环境javaversion"1.8.0_201"Java(TM)SERuntimeEnvironment(build1.8.0_201-b09)JavaHotSpot(TM)64-BitServerVM(build25.201-b09,mixedmode)
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

1、MySQL8.0有新的安全认证机制,具体可查看官方文档
2、目前很多数据库可视化工具尚不支持MySQL8.0的新安全认证机制
3、最简单的解决办法是在安装dmg包的时候有选项,可降级安全认证方式,可选择连接到数据库的认证方式
                            
查看完整回答
反对 回复 2019-06-19
  • 2 回答
  • 0 关注
  • 1396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信