繁体   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