解决方案(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 / service中是否有与上述SVCENAME对应的端口,例如:db2cDB2 50000 / tcp。
(5)要确认服务器是否正在侦听,可以使用netstat -an查看端口是否处于LISTEN状态。
扩展资料:
SQLSTATE=08001的原因和典型示例:
1、客户端将新的密码值发送到不支持密码更改功能的服务器。
2、客户端将SERVER_ENCRYPT身份验证信息发送到不支持密码加密的服务器。
3、客户端将不带密码的用户ID发送到不仅通过用户ID支持身份验证的服务器。
4、客户端未指定身份验证类型,服务器未使用支持的类型进行响应。 这包括返回客户端无法选择的多种服务器。
解决方案(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、客户机未指定认证类型,且服务器未用支持的类型响应。这会包括返回客户机无法从中选择的多种类型的服务器。
参考资料:
IBM文档中心--DB2 Connect 常见问题
IBM文档中心--数据访问(SQLSTATE=08001)
有关SQLSTATE57014和57019的解决方法
一、SQLSTATE57014,SQL0952N由于中断而取消处理
问题背景:近日对1400+万的数据进行select,在db2下是29秒。在sql里面添加处理逻辑后是1分40秒。在开发程序中操作同样的sql,执行过程中报错“SQLSTATE57014,SQL0952N由于中断而取消处理”。debug后问题出在数据源配置结果集上。
解决方法:
1. 问题产生的原因是数据量大查询超时引起的,我们经常会将Connection的Timeout设置为0,其实在系统底层Connection的过期时间属性已经默认为0并且是只读状态;
.执行sql的状态和DB2的DBCommand相关,其属性值可读可写,只需要将CommandTimeOut的属性设置为0即可;
我们设置属性的时候要在数据源关闭的前提下进行设置,如果数据源已经开启,设置DBCommand并不会产生效果,“SQLSTATE57014,SQL0952N由于中断而取消处理”的问题在执行代码期间仍然会报错。
2.db2cli.ini中添加 set QUERYTIMEOUTINTERVAL=0
二、SQLSTATE57019,SQL1117N 因为处于ROLL-FORWARD PENDING 状态,所以不能连接或激活数据库
问题背景:系统数据库的备份是动态备份下来的,人工导入后打不开,报错。
解决方法
因为处于“ROLL-FORWARD PENDING”前滚悬挂状态,右键数据库选择前滚恢复,下面我们选择日志项,同时路径指向该数据库之前的日志目录,点击退出回滚状态,执行完成即可。
1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。
1044错误:数据库用户权限不足,请联系空间商解决
1045错误:数据库服务器/数据库用户名/数据库名/数据库密码错误,请联系空间商检查帐户。
1054错误:程序文件跟数据库有冲突,请使用正确的程序文件上传上去覆盖。
1146错误:数据表缺失,请恢复备份数据.
2002错误:服务器端口不对,请咨询空间商正确的端口。
2003错误:mysql服务没有启动,请启动该服务
1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1009:不能删除数据库文件导致删除数据库失败
1010:不能删除数据目录导致删除数据库失败
1011:删除数据库文件失败
1012:不能读取系统表中的记录
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:关键字重复,更改记录失败
1023:关闭时发生错误
1024:读文件错误
1025:更改名字时发生错误
1026:写文件错误
1032:记录不存在
1036:数据表是只读的,不能对它进行修改
1037:系统内存不足,请重启数据库或重启服务器
1038:用于排序的内存不足,请增大排序缓冲区
1040:已到达数据库的最大连接数,请加大数据库可用连接数
1041:系统内存不足
1042:无效的主机名
1043:无效连接
1044:当前用户没有访问数据库的权限
1045:不能连接数据库,用户名或密码错误
1048:字段不能为空
1049:数据库不存在
1050:数据表已存在
1051:数据表不存在
1054:字段不存在
1065:无效的SQL语句,SQL语句为空
1081:不能建立Socket连接
1114:数据表已满,不能容纳任何记录
1116:打开的数据表太多
1129:数据库出现异常,请重启数据库
1130:连接数据库失败,没有连接数据库的权限
1133:数据库用户不存在
1141:当前用户无权访问数据库
1142:当前用户无权访问数据表
1143:当前用户无权访问数据表中的字段
1146:数据表不存在
1147:未定义用户对数据表的访问权限
1149:SQL语句语法错误
1158:网络错误,出现读错误,请检查网络连接状况
1159:网络错误,读超时,请检查网络连接状况
1160:网络错误,出现写错误,请检查网络连接状况
1161:网络错误,写超时,请检查网络连接状况
1062:字段值重复,入库失败
1169:字段值重复,更新记录失败
1177:打开数据表失败
1180:提交事务失败
1181:回滚事务失败
1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
1205:加锁超时
1211:当前用户没有创建用户的权限
1216:外键约束检查失败,更新子表记录失败
1217:外键约束检查失败,删除或修改主表记录失败
1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
1227:权限不足,您无权进行此操作
1235:MySQL版本过低,不具有本功能
连接失败: SQLState:'01000' SQL Server 错误: 53 [Microsoft][ODBC SQL Server Driver][DBNETLIB]Connect是设置错误造成的,解决方法为:
1、以windows验证模式进入数据库管理器。
2、windows身份登录后,找到:安全性-登录名-sa,然后右击选择属性。
3、选择常规(输入新的密码,取消实施密码策略)。
4、选择状态(设置授予和启用)。
5、右击选择属性。
6、选择安全性(SQL Server 和windows身份验证模式)。
7、然后点击确定按钮。
本文转载自互联网,如有侵权,联系删除