問題描述mac下無法使用jdbc連接mysql8.0Mysql環(huán)境debian9虛擬機mysqlVer8.0.16forLinuxonx86_64(MySQLCommunityServer-GPL)#已經(jīng)允許遠(yuǎn)程連接嘗試方法Mac下使用IDEA,Datagrip均無法連接到虛擬機。Mac與虛擬機在同一網(wǎng)段,192.168.0.x,未使用代理連接。但是可以使用tableplus,mysqlworkbench等工具連接。預(yù)測為jetbrains產(chǎn)品有問題。測試在另外一臺windows系統(tǒng)下,使用datagrip連接mysql,成功連接。預(yù)測mac環(huán)境有問題。編寫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服務(wù)器上,應(yīng)該是mac下jdbc連接mysql8.0有問題,網(wǎng)上搜了很多,沒有解決。到這里就沒有頭緒了。macjava環(huán)境javaversion"1.8.0_201"Java(TM)SERuntimeEnvironment(build1.8.0_201-b09)JavaHotSpot(TM)64-BitServerVM(build25.201-b09,mixedmode)
請各位大佬指點!mac 下jdbc連接mysql 8.0 失敗各位有什么建議?
慕田峪4524236
2019-06-21 17:07:52