簡體   English   中英

SQOOP QUERY:連接到遠程服務器MySQL時遇到問題

[英]SQOOP QUERY: trouble connecting to remote server MySQL

我遇到需要sqoop連接到遠程ipaddress mysql的情況。 我可以通過觸發以下命令從膩子連接到mysql:

mysql -u ro -p -h xxxx -P 4307 orders --enable-cleartext-plugin

但是,我無法從sqoop連接到遠程ip:xxxx,但出現了“ Communications link failure error 我認為此錯誤的原因可能是:SSL證書已過期,因為我們正在連接到遠程服務器。 下面是生成的錯誤日志。 即使我在sqoop中關閉了ssl選項,它也會說由以下原因引起:java.sql.SQLException:使用明文身份驗證時需要ssl sqoop是否可以連接到遠程服務器mysql?

任何幫助,將不勝感激

謝謝

命令:sqoop列表表--connect'jdbc:mysql:// xxxx:4307 / orders'-用戶名abc-密碼abc

警告:/usr/lib/sqoop/../hbase不存在! HBase導入將失敗。 請將$ HBASE_HOME設置為HBase安裝的根目錄。 警告:/usr/lib/sqoop/../hcatalog不存在! HCatalog作業將失敗。 請將$ HCAT_HOME設置為HCatalog安裝的根目錄。 警告:/usr/lib/sqoop/../accumulo不存在! Accumulo導入將失敗。 請將$ ACCUMULO_HOME設置為Accumulo安裝的根目錄。 警告:/usr/lib/sqoop/../zookeeper不存在! Accumulo導入將失敗。 請將$ ZOOKEEPER_HOME設置為Zookeeper安裝的根目錄。 18/07/10 12:18:45 INFO sqoop.Sqoop:正在運行Sqoop版本:1.4.7 18/07/10 12:18:45 WARN工具。BaseSqoopTool:在命令行上設置密碼不安全。 考慮改用-P。 2010年8月18日12:18:45信息管理器。MySQLManager:准備使用MySQL流式結果集。 TED Jul 10 12:18:46 EDT 2018警告:不建議在沒有服務器身份驗證的情況下建立SSL連接。 根據MySQL 5.5.45 +,5.6.26 +和5.7.6+的要求,如果未設置顯式選項,則默認情況下必須建立SSL連接。 為了與不使用SSL的現有應用程序兼容,將verifyServerCertificate屬性設置為'false'。 您需要通過設置useSSL = false來顯式禁用SSL,或者設置useSSL = true並為服務器證書驗證提供信任庫。 10/18/18 12:18:46錯誤manager.CatalogQueryManager:無法列出表com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈接失敗

從服務器成功接收到的最后一個數據包是476毫秒前。 成功發送到服務器的最后一個數據包是465毫秒之前。 位於java.lang.java.sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)處sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)處sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法) .newInstance(Constructor.java:423)位於com.mysql.jdbc.Util.handleNewInstance(Util.java:425)位於com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)位於com.mysql.jdbc。 com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4901)的com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)的ExportControlled.transformSocketToSSLSocket(ExportControlled.java:203) com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188)的com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2219)的.sqlIO.doHandshake(MysqlIO.java:1226) com上的jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2014) .mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:776)位於com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:47)位於sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)在java.lang.reflect.Constructor.newInstance(Constructor.java:423)在com.mysql.jdbc.Util.handleNewInstance( com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)處的Util.java:425)com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)處的java.sql.DriverManager.getConnection(DriverManager)處的Util.java:425) .java:664),位於org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:904),位於org.apache.sqoop.manager.GenericJdbcManager,位於java.sql.DriverManager.getConnection(DriverManager.java:247)。 org.apache.sqoop.manager.CatalogQueryManager.lis上的getConnection(GenericJdbcManager.java:59) org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)處的tTables(CatalogQueryManager.java:102)org.apache.hadoop處的org.apache.sqoop.Sqoop.run(Sqoop.java:147)處的TableTablesTool.run(ListTablesTool.java:49) org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)上的.util.ToolRunner.run(ToolRunner.java:70)org.org上的org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)上的。 org.apache.sqoop.Sqoop.main(Sqoop.java:252)處的apache.sqoop.Sqoop.runTool(Sqoop.java:243)原因:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateExpiredException: NotAfter:2018年1月19日星期五美國東部時間周五在sun.security.ssl.Alerts.getSSLException(Alerts.java:192)在sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1959)在sun.security .sun上的.ssl.Handshaker.fatalSE(Handshaker.java:302)在sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)在sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514)。 sun.security.ssl.Handshaker.processLoop(Hand)上的security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) 在sun.security.ssl.Handshaker.process_record(Handshaker.java:961)在sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)在sun.security.ssl.SSLSocketImpl.performInitialHandshaake (SSLSocketImpl.java:1385)在sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)在sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)在com.mysql.jdbc.ExportControlled。 transformSocketToSSLSocket(ExportControlled.java:188)... 27更多原因:java.security.cert.CertificateExpiredException:NotAfter:EST 2018年1月19日星期五sun.security.x509.CertificateValidity.valid(CertificateValidity.java :274),位於sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:629),位於com.mysql.jdbc.ExportControlled $ X509TrustManager.r.X509.X509.X509CertImpl.checkValidity(X509CertImpl.java:602)處。 sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:985)上的ExportControlled.java:286) 在sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496)... 35更多18/07/10 12:18:46錯誤sqoop.Sqoop:運行Sqoop時出現異常:java.lang.RuntimeException:com。 mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈接失敗

從服務器成功接收到的最后一個數據包是476毫秒前。 成功發送到服務器的最后一個數據包是465毫秒之前。 java.lang.RuntimeException:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信鏈接失敗

從服務器成功接收到的最后一個數據包是476毫秒前。 成功發送到服務器的最后一個數據包是465毫秒之前。 在org.apache.sqoop.manager.CatalogQueryManager.listTables(CatalogQueryManager.java:118)在org.apache.sqoop.tool.ListTablesTool.run(ListTablesTool.java:49)在org.apache.sqoop.Sqoop.run(Sqoop .java:147),位於org.apache.sqoop.Sqoop的org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70),位於org.apache.sqoop.Sqoop的org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)。 org.apache.sqoop.Sqoop的runTool(Sqoop.java:234)org.apache.sqoop.Sqoop.main(Sqoop.java:252)的runTool(Sqoop.java:243)原因:com.mysql.jdbc .exceptions.jdbc4.CommunicationsException:通信鏈接失敗

從服務器成功接收到的最后一個數據包是476毫秒前。 成功發送到服務器的最后一個數據包是465毫秒之前。 位於java.lang.java.sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)處sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)處sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法) .newInstance(Constructor.java:423)位於com.mysql.jdbc.Util.handleNewInstance(Util.java:425)位於com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)位於com.mysql.jdbc。 com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4901)的com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)的ExportControlled.transformSocketToSSLSocket(ExportControlled.java:203) .com的mysqlIO.doHandshake(MysqlIO.java:1226)com.mysql的com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2219)的com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188) com上的jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2014) .mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:776)位於com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:47)位於sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)在java.lang.reflect.Constructor.newInstance(Constructor.java:423)在com.mysql.jdbc.Util.handleNewInstance( com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)處的Util.java:425)com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)處的java.sql.DriverManager.getConnection(DriverManager)處的Util.java:425) .java:664),位於org.apache.sqoop.manager.SqlManager.makeConnection(SqlManager.java:904),位於org.apache.sqoop.manager.GenericJdbcManager,位於java.sql.DriverManager.getConnection(DriverManager.java:247)。 org.apache.sqoop.manager.CatalogQueryManager.lis上的getConnection(GenericJdbcManager.java:59) tTables(CatalogQueryManager.java:102)...還有7個更多原因:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateExpiredException:NotAfter:EST 2018年1月19日星期五14:35:17 sun.security.ssl .sun.security.ssl上的.Alerts.getSSLException(Alerts.java:192).sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1959)處的sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)處的。位於sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514)的ssl.Handshaker.fatalSE(Handshaker.java:296)位於sun.security的sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) sun上的.ssl.Handshaker.processLoop(Handshaker.java:1026)在sun.security.ssl.Handshaker.process_record(Handshaker.java:961)在sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1072)。在sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)處的security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)在sun.security.ssl.SSLSocketImpl.startHandshake(S com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:188)的SLSocketImpl.java:1397)... 27更多原因:java.security.cert.CertificateExpiredException:NotAfter:EST 1月19日14:35:17 EST 2018年在sun.security.x509.CertificateValidity.valid(CertificateValidity.java:274)在sun.security.x509.X509CertImpl.checkValidity(X509CertImpl.java:629)在sun.security.x509.X509.X509CertImpl.checkValidity(X509CertImpl.java: 602)在sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:985)在com.mysql.jdbc.ExportControlled $ X509TrustManagerWrapper.checkServerTrusted(ExportControlled.java:286)在sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandker .java:1496)...另外35個

請嘗試這個-

1)前往my.cnf

2)注釋bind-address(僅接受本地連接)

“綁定地址= 127.0.0.1”

“#bind-address = 127.0.0.1”

3)重啟mysql

還要檢查一下-

jdbc mysql通信鏈接到遠程數據庫失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM