DB2-编目远程数据库-出现-SQL30081N-通信错误,解决办法
DB2 编目远程数据库 出现 SQL30081N 通信错误,解决办法
在客户端使用 DB2 控制中心(db2cc) 直接去编目远程数据库,出现以下错误消息:
SQL30081N 检测到通信错误。正在使用的通信协议:“TCP/IP”。正在使用的通信API:
“SOCKETS”。检测到错误的位置:“192.168.2.212”。检测到错误的通信函数:“connect”。协
议特定的错误代码:“10061”、""、""。 SQLSTATE=08001
通过“显示命令”,发现控制中心的命令为:
CATALOG ADMIN TCPIP NODE N_TEST REMOTE 103.21.30.100 SYSTEM 103.21.30.100 OSTYPE WIN;
解决问题:
首先google,网上有提到的几种可能性,一一检查。
首先确认服务器是否能链接,使用ping命令,服务器能正常通信。
确认数据库实例是否正在运行。 在客户端用jdbc连接,可以连接上数据库。
确认 DB2COMM 是否设置, 远程到服务器上,运行命令 db2set –all
查看DB2COMM这一项,DB2COMM=TCPIP,说明这一项设置正确;
以上经过检查都正确,说明不是这些问题。
然后看到一个查看数据库配置的命令,就试试看,看看是否配置有啥问题。
命令:db2 get dbm cfg
注意到其中有以下一条信息:
没有权限就允许编目 (CATALOG_NOAUTH) = NO
说明客户端要想编目,必须拥有权限(我理解为经过合法用户验证)。于是在db2cmd下运行以下命令:
CATALOG TCPIP NODE N_TEST REMOTE 103.21.30.100 SERVER 50000 REMOTE_INSTANCE db2inst1 SYSTEM 103.21.30.100 OSTYPE WIN;
注意:就加了REMOTE_INSTANCE db2inst1这一段,db2inst1即服务器数据库的一个合法用户。
顺利编目。