系统:Windows 8
我一直致力于使用IBM DB2 Express-C,Xampp和PHP访问数据库的学校项目。
一切都很完美。然后有一天我重新启动了我的电脑。
IBM Database Manager在启动时返回以下错误:
SQL5005C操作失败,因为数据库管理器无法访问数据库管理器配置文件或数据库配置文件。
我尝试过运行db2stop和db2start。
我仍然可以通过db2命令行终端访问我的数据库,就像没有错误一样。
但是,当我尝试从PHP访问我的数据库时,我现在从我的PHP文件中收到以下错误:
58031 [IBM] [CLI驱动程序] SQL1031N在指定的文件系统上找不到数据库目录。 SQLSTATE = 58031 SQLCODE = -1031
答案 0 :(得分:0)
您可能需要仔细检查db2diag.log以找到SQL5005C
的原因。在更好的情况下,访问配置文件存在临时问题。但是,在更糟糕的情况下,其中一个DBM或DB配置文件可能已损坏。对于损坏的DBM CFG,我通常使用db2idrop
/ db2icrt
。可以通过RESET DB CFG
“修复”损坏的DB CFG(如“重置”,您将丢失所有自定义更改)。
后续SQL1031N
告诉我您尝试访问的数据库已被取消编目。这也很奇怪,特别是因为您告诉我您可以从DB2命令行访问数据库。您可能希望从命令行执行LIST DB DIRECTORY
以显示数据库条目,还可以LIST NODE DIRECTORY
查看数据库所在的节点。
答案 1 :(得分:0)
可能的原因是您丢失了硬盘上的数据库文件。
答案 2 :(得分:0)
当您尝试使用编程语言(PHP,python或其他语言)与DB2交互时,您使用与db2客户端应用程序交互的库(示例 ibm_db for python)连接/查询您的数据库。
如果您的工作站上安装了多个IBM Data Server客户端软件包,则可能无法使用正确的软件包来访问您的数据库。
因此,您必须验证PHP api用于执行此任务的客户端。要做到这一点:
您可以在同一台计算机上找到有关管理更多db2客户端的更多信息here