连接数据库失败,SQLSTATE=08001怎么解决?
解决方案(08001错误表明无法与应用程序服务器或其他服务器建立连接):
1、查看端口号有没有配置正确,配置参数svcename跟services文件中配置的db2端口号是否一致,windows一般用50000,unix/linux一般用60000。
2、查看服务器ip 和端口是否正确。ip如果没错就要查看服务器的db2服务端口。服务器检查的配置情况如下:
(1)验证存在的DB2数据库的代码:db2 list db directory;db2 list db directory show detail。
(2)验证实例使用的通讯协议,查看DB2COMM变量:db2set -all。
(3)查看数据库管理器的配置,查看SVCENAME(特指tcpip协议):db2 get dbm cfg。
(4)查看/etc/services中,有无与上面对应SVCENAME的端口,例如:db2cDB2 50000/tcp。
(5)要确认服务器是否在监听,可以用netstat -an 来查看端口是否处于LISTEN状态。
扩展资料:
SQLSTATE=08001的原因和典型示例:
一、这种问题一般的原因。
1、DB2COMM=TCPIP。
2、数据库故障。
3、端口号被禁用。
二、典型示例。
1、客户机将新密码值发送给了不支持更改密码功能的服务器。
2、客户机将 SERVER_ENCRYPT 认证信息发送给了不支持密码加密的服务器。
3、客户机将用户标识但不带密码发送给了不支持仅通过用户标识认证的服务器。
4、客户机未指定认证类型,且服务器未用支持的类型响应。这会包括返回客户机无法从中选择的多种类型的服务器。
参考资料:
推荐于2017-10-06
2.连接出错首先看看服务器ip 和端口写对没有
ip如果没错就要看看服务器的db2服务端口对不对。另外对于服务器下面这些也要注意
检查服务器的配置情况如下:
验证存在的DB2数据库
db2 list db directory
db2 list db directory show detail
验证实例使用的通讯协议,查看DB2COMM变量
db2set -all
查看数据库管理器的配置,查看SVCENAME(特指tcpip协议)
db2 get dbm cfg
查看/etc/services中,有无与上面对应SVCENAME的端口,例如:
db2cDB2 50000/tcp
要确认服务器是否在监听,可以用netstat -an 来查看端口是否处于LISTEN状态
2013-04-11