DB2用户密码修改及数据库备份恢复问题
前天开始安装省总服务器,先建数据库,又打包程序进行安装,一切按部就班,很是顺利,可最后程序总是连不上数据库,用以下命令进行测试:
catalog tcpip node local remote localhost server 5000(db2-port-number)
catalog db sample as test at node local
connect to test user <用户名> using
最后总是提示:
SQL30081N 检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信API:
"SOCKETS"。检测到错误的位置:"127.0.0.1"。检测到错误的通信函数:"recv"。协议
特定的错误代码:"10054"、"*"、"0"。 SQLSTATE=08001
又是30081N错误!!!一遍遍的检查端口、TCP/IP协议、网络连接,一切都正常!没有办法,只好重新装数据库,用restore恢复备份的数据库时,系统总是提示:在本地数据库目录或系统数据库目录中已经存在数据库别名 "HD" ,到网上搜了一下按别的人提示进行以下操作:
用命令行:
首先db2 list db directory 来查看有没有HD的entry
没有看到有HD的信息
还是执行了一下db2 drop db HD
如果数据库没有删除的话,则此命令应该成功,否则的话就应该用下面这个命令
uncatalog db HD来删除HD的 entry,但是提示报‘SQL1013N 找不到数据库别名或数据库名 "HD "。 SQLSTATE=42705’错误,。郁闷,接着又按网上别人的说法进行以下操作:
db2 catalog db HD
db2 drop db HD
然后在执行restore database HD taken at 时间戳 命令,OK,成功!
不过,程序仍是连不上数据库,后来终于想起来,估计是我恢复的数据库密码跟我新建的数据库密码不一致所造成的,那么在DB2中针对db2admin用户,它的密码能修改吗?有关资料上说:db2admin用户创建了以后它的密码最好不要修改,因为重新启动系统之后就会连不上数据库,系统报错DB2管理服务器没有启动,这是因为注册系统服务的时候是按照DB2安装时候的用户名和密码进行注册的,所以你修改密码后系统服务就没有办法启动,所以才会造成这种情况。具体对策只要把服务中的启动服务的用户密码改成修改过的密码在启动DB2服务即可。