当前位置: 首页 > 知识库问答 >
问题:

SQOOP QUERY:连接到远程服务器MySQL时出现问题

羊刚捷
2023-03-14

我有一个案例,需要sqoop连接到远程ipaddress mysql。我可以通过启动以下命令从putty连接到mysql:

mysql-u ro-p-h x.x.x.x-p 4307订单-启用明文插件

但是,我无法从sqoop连接到远程ip:x.x.x.x我收到通信链路故障错误。我认为此错误的原因可能是:SSL证书在连接到远程服务器时过期。下面是生成的错误日志。即使我在sqoop中关闭了ssl选项,它也表示这是由:java引起的。sql。SQLException:使用明文身份验证时需要ssl sqoop能否连接到远程服务器mysql?

任何帮助都将不胜感激

谢啦

命令:sqoop list-table--connect'jdbc: mysql://x. x. x. x: 4307/order'-用户名abc-密码abc

警告:/usr/lib/sqoop//hbase不存在!HBase导入将失败。请将$HBASE\u HOME设置为HBASE安装的根目录。警告:/usr/lib/sqoop//hcatalog不存在!HCatalog作业将失败。请将$HCAT\u HOME设置为HCatalog安装的根目录。警告:/usr/lib/sqoop//accumulo不存在!Accumulo导入将失败。请将$ACCUMULO\u HOME设置为ACCUMULO安装的根目录。警告:/usr/lib/sqoop//zookeeper不存在!Accumulo导入将失败。请将$ZOOKEEPER\u HOME设置为ZOOKEEPER安装的根目录。2010年7月18日12:18:45信息sqoop。Sqoop:运行Sqoop版本:1.4.7 10年7月18日12:18:45警告工具。BaseSqoopTool:在命令行上设置密码是不安全的。考虑改用-P。2010年7月18日12:18:45信息经理。MySQLManager:准备使用MySQL流结果集。2018年7月10日星期二12:18:46 EDT警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45、5.6.26和5.7.6的要求,如果未设置explicit选项,则默认情况下必须建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为“false”。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供truststore。2010年7月18日12:18:46错误管理器。CatalogQueryManager:未能列出com表。mysql。jdbc。例外情况。jdbc4.CommunicationsException:通信链路故障

从服务器成功接收的最后一个数据包是476毫秒前。最后一个成功发送到服务器的数据包是465毫秒前。在sun.reflect.NativeConstructorAccessorIcom.mysql.jdbc.Instance0(Native Method)在com.mysql.jdbc.NativeConstructorAccessorImpl.new实例(NativeConstructorAccessorImpl.java:62)在sun.reflect.在java.lang.reflect.Constructor.new实例(Constructor.java:423)在com.mysql.jdbc.Util.handleNewInstance(Util.java:425)在com.mysql.jdbc.SQLError.createCommunications icationsException(SQLError.java:990)在com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportC)在mpl.newMysqlIO.的MysqlIO. java: 4901)在mpl.newMysqlIO.的HandshakeSusPlugableAuthentiation(MysqlIO. java: 1659)在sun.reflect.MysqlIO. doHandshak(MysqlIO. java: 1226)构造器. newInstance(构造器. java: 423)在com. mysql. jdbc。Util. handleNewInstance(Util. java: 425)在com. mysql. jdbc。ConnectionInstance. getInstance(ConnectionInstance. java: 386)在com. mysql. jdbc。在java. sql。DriverManager. getConnection(DriverManager. java: 664)在java. sql。DriverManager. getConnection(DriverManager. java: 247)在org. apache. sqoop. Manager。sqlManager. makeConnection(SqlManager. java: 904)在org. apache. sqoop. Manager。GenericJdbcManager. getConnection(GenericJdbcManager. java: 59)在org.ClientHandshaker. server证书(ClientHandshaker. java: 1514)在sun. security. ssl。ClientHandshaker. Process消息(ClientHandshaker. java: 216)在sun. security. ssl。Handshaker. Process Loop(Handshaker. java: 1026)在sun. security. ssl。握手者。process_record(Handshaker. java: 961)在sun. security. ssl。SSLSocketInpi. readRecords(SSLSocketInpi. java: 1072)在sun. security. ssl。SSLSocketInpi. perform的初始握手(SSLSocketInpi. java: 1385)在sun. security. ssl。SSLSocketInpi. java: 1413)在sun. security. ssl。SSLSocketInpi. start握手(SSLSocketjava: 1397)在com. mysql.

从服务器成功接收的最后一个数据包是476毫秒前。最后一个成功发送到服务器的数据包是465毫秒前。Java语言lang.RuntimeException:com.mysql。jdbc。例外情况。jdbc4.CommunicationsException:通信链路故障

从服务器成功接收的最后一个数据包是476毫秒前。最后一个成功发送到服务器的数据包是465毫秒前。位于组织。阿帕奇。sqoop。经理CatalogQueryManager。org上的listTables(CatalogQueryManager.java:118)。阿帕奇。sqoop。工具ListTablesTool。在org上运行(ListTablesTool.java:49)。阿帕奇。sqoop。Sqoop。在org上运行(Sqoop.java:147)。阿帕奇。hadoop。util。ToolRunner。在org上运行(ToolRunner.java:70)。阿帕奇。sqoop。Sqoop。org上的runSqoop(Sqoop.java:183)。阿帕奇。sqoop。Sqoop。org上的runTool(Sqoop.java:234)。阿帕奇。sqoop。Sqoop。org上的runTool(Sqoop.java:243)。阿帕奇。sqoop。Sqoop。main(Sqoop.java:252)由:com引起。mysql。jdbc。例外情况。jdbc4.CommunicationsException:通信链路故障

从服务器成功接收的最后一个数据包是476毫秒前。最后一个成功发送到服务器的数据包是465毫秒前。在太阳下。反映NativeConstructorAccessorImpl。sun上的newInstance0(本机方法)。反映NativeConstructorAccessorImpl。sun上的newInstance(NativeConstructorAccessorImpl.java:62)。反映授权ConstructorAccessorImpl。java上的newInstance(DelegatingConstructorAccessorImpl.java:45)。lang.reflect。构造函数。com上的newInstance(Constructor.java:423)。mysql。jdbc。Util。com上的handleNewInstance(Util.java:425)。mysql。jdbc。SQLError。com上的createCommunicationsException(SQLError.java:990)。mysql。jdbc。出口受控。com上的transformsockettosslssocket(ExportControlled.java:203)。mysql。jdbc。MysqlIO。com上的negotiateSSLConnection(MysqlIO.java:4901)。mysql。jdbc。MysqlIO。com上的proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)。mysql。jdbc。MysqlIO。com上的doHandshake(MysqlIO.java:1226)。mysql。jdbc。连接示例。com上的coreConnect(ConnectionImpl.java:2188)。mysql。jdbc。连接示例。com上的connectOneTryOnly(ConnectionImpl.java:2219)。mysql。jdbc。连接示例。createNewIO(ConnectionImpl.java:2014)网站。mysql。jdbc。连接示例。(ConnectionImpl.java:776)位于com.mysql。jdbc。JDBC4连接。(JDBC4Connection.java:47)位于sun。反映NativeConstructorAccessorImpl。sun上的newInstance0(本机方法)。反映NativeConstructorAccessorImpl。sun上的newInstance(NativeConstructorAccessorImpl.java:62)。反映授权ConstructorAccessorImpl。java上的newInstance(DelegatingConstructorAccessorImpl.java:45)。lang.reflect。构造函数。com上的newInstance(Constructor.java:423)。mysql。jdbc。Util。com上的handleNewInstance(Util.java:425)。mysql。jdbc。连接示例。com上的getInstance(ConnectionImpl.java:386)。mysql。jdbc。未注册的驱动程序。在java上连接(NonRegisteringDriver.java:330)。sql。DriverManager。java上的getConnection(DriverManager.java:664)。sql。DriverManager。位于org的getConnection(DriverManager.java:247)。阿帕奇。sqoop。经理SqlManager。在org上创建连接(SqlManager.java:904)。阿帕奇。sqoop。经理GenericJdbcManager。位于org的getConnection(GenericJdbcManager.java:59)。阿帕奇。sqoop。经理CatalogQueryManager。listTables(CatalogQueryManager.java:102)。。。7更多原因:javax。网ssl。SSLHandshakeException:java。安全cert.CertificateExpiredException:NotAfter:2018年1月19日星期五14:35:17东部时间周日。安全ssl。警报。sun上的getSSLException(Alerts.java:192)。安全ssl。SSLSocketImpl。sun的致命(SSLSocketImpl.java:1959)。安全ssl。握手。sun的fatalSE(Handshaker.java:302)。安全ssl。握手。fatalSE(Handshaker.java:296)在sun。安全ssl。ClientHandshaker。sun的服务器证书(ClientHandshaker.java:1514)。安全ssl。ClientHandshaker。在sun上处理消息(ClientHandshaker.java:216)。安全ssl。握手。sun的processLoop(Handshaker.java:1026)。安全ssl。握手。在sun处理\u记录(Handshaker.java:961)。安全ssl。SSLSocketImpl。sun上的readRecord(SSLSocketImpl.java:1072)。安全ssl。SSLSocketImpl。在sun进行PerformitialHandshake(SSLSocketImpl.java:1385)。安全ssl。SSLSocketImpl。sun的startHandshake(SSLSocketImpl.java:1413)。安全ssl。SSLSocketImpl。com上的startHandshake(SSLSocketImpl.java:1397)。mysql。jdbc。出口受控。transformSocketToSSLSocket(ExportControlled.java:188)。。。27更多原因:java。安全cert.CertificateExpiredException:NotAfter:2018年1月19日星期五14:35:17东部时间周日。安全x509.CertificateValidity。在sun有效(CertificateValidity.java:274)。安全x509.x509认证。在sun上检查有效性(X509CertImpl.java:629)。安全x509.x509认证。在com上检查有效性(X509CertImpl.java:602)。mysql。jdbc。ExportControlled$X509TrustManagerRapper。位于sun的checkServerTrusted(ExportControlled.java:286)。安全ssl。AbstractTrustManagerRapper。sun上的checkServerTrusted(SSLContextImpl.java:985)。安全ssl。ClientHandshaker。服务器证书(ClientHandshaker.java:1496)。。。35个以上

共有1个答案

贺华容
2023-03-14

请试试这个-

1)去my.cnf

2) 注释绑定地址(因为它只接受本地连接)

“绑定地址=127.0.0.1”

“#绑定地址=127.0.0.1”

3)重启mysql

还要检查这个-

jdbc mysql到远程数据库的通信链接失败

 类似资料:
  • 问题内容: 尝试通过以下代码连接到 openfire 服务器时: 我得到一个异常说: 这可能是什么原因? 注意 :我已经允许openfire消防服务器通过防火墙。我也尝试过关闭防火墙,但是结果相同。服务器是我自己的机器。我尝试在其上运行程序的同一台计算机。 问题答案: 您可以使用 或者如果您想指定端口 或类似,默认为端口5222

  • 问题内容: 我正在尝试使用以下代码从本地计算机virtualhost连接到远程MySQL服务器: 我的问题是我无法本地连接,收到错误消息: 无法连接到“ xxx.xxx.xxx.xxx”上的MySQL服务器(10060) 当我将相同的PHP文件上传到服务器时,情况并非如此。我能够毫无问题地查询数据库。 我也无法通过命令行进行连接,但是我可以访问cPanel,它排除了我的IP被意外禁止的可能性。 我

  • 问题内容: 我想对redis.conf进行一些更改,以便每当我键入redis-cli时,它就会将我连接到安装在远程服务器上的redis。 我知道我们可以通过以下方式连接到安装在远程服务器上的redis: 但是实际上,我有一些bash脚本,在那些脚本中,我在很多地方都使用过redis-cli。因此,我不想以每个文件中的redis-cli -h’IP- Address-Of-Server’替换redi

  • 问题内容: 我已经使用Ubuntu 10.10服务器上http://redis.io/topics/quickstart上的快速入门指南中的说明成功安装了Redis 。我将服务作为dameon运行(因此可以通过init.d运行) 该服务器是具有内部和外部IP的Rackspace Cluster的一部分。主机在端口6379上运行(Redis的标准配置) 我在iptables中添加了一行,以允许来自端

  • 问题内容: 我正在使用PHP和MySQL建立数据库连接,唯一的变化是我试图使用服务器IP地址从本地计算机访问远程服务器。 我得到的错误是。用户拥有所有特权和权利。 问题答案: MySQL的大多数默认安装仅侦听本地计算机。 在服务器上查找设置,并确保它正在侦听目标IP地址。您可能还需要确保 未 打开! 另外一种方法(不太安全!)可以将其设置为侦听所有地址-本地和远程: