[英]IBM DB2 unable to access database from PHP after reboot
系统: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
您可能需要仔细检查db2diag.log以查找SQL5005C
的原因。 在更好的情况下,访问配置文件时会出现暂时性问题。 但是,在最坏的情况下,DBM或DB配置文件之一可能已损坏。 如果DBM CFG损坏,我通常使用db2idrop
/ db2icrt
。 RESET DB CFG
可以“修复”损坏的DB CFG(如在“重置”中,您将丢失所有自定义更改)。
随后的SQL1031N
告诉我您尝试访问的数据库已被取消目录。 这也很奇怪,特别是因为您告诉我您可以从DB2命令行访问数据库。 您可能要从命令行执行LIST DB DIRECTORY
来显示数据库条目,还希望执行LIST DB DIRECTORY
LIST NODE DIRECTORY
来查看数据库位于哪个节点上。
当您尝试通过编程语言(PHP,Python或其他语言)与DB2进行交互时,将使用与db2客户机应用程序进行交互的库(例如python的ibm_db )来连接/查询您的数据库。
如果工作站上安装了多个IBM Data Server客户端软件包,则可能无法使用正确的软件包访问数据库。
因此,您必须验证您的PHP api使用哪个客户端来完成此工作。 去做这个:
您可以在此处找到有关在同一台机器上管理更多db2客户机的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.