【问题标题】:IBM DB2 unable to access database from PHP after rebootIBM DB2 重新启动后无法从 PHP 访问数据库
【发布时间】:2015-10-27 01:13:20
【问题描述】:

系统:Windows 8

我一直在为学校开展一个项目,使用 IBM DB2 Express-C、Xampp 和 PHP 来访问数据库。

一切都运行良好。然后有一天我重新启动了我的电脑。

IBM Database Manager 在启动时返回以下错误:

SQL5005C 操作失败,因为数据库管理器无法访问数据库管理器配置文件或数据库配置文件。

我尝试过运行 db2stop 和 db2start。

我仍然可以通过 db2 命令行终端访问我的数据库,就好像一切正​​常。

但是,当我尝试从 PHP 访问我的数据库时,我现在从我的 PHP 文件中收到以下错误:

58031 [IBM][CLI Driver] SQL1031N 在指示的文件系统上找不到数据库目录。 SQLSTATE=58031 SQLCODE=-1031

【问题讨论】:

    标签: php database db2


    【解决方案1】:

    您可能需要仔细检查 db2diag.log 以找出 SQL5005C 的原因。在更好的情况下,访问配置文件时会出现临时问题。但是,在更坏的情况下,DBM 或 DB 配置文件之一可能已损坏。对于损坏的 DBM CFG,我通常使用db2idrop/db2icrtRESET DB CFG 可以“修复”损坏的 DB CFG(如“重置”,您将丢失所有自定义更改)。

    随后的SQL1031N 告诉我您尝试访问的数据库已取消编目。这也很奇怪,特别是因为您告诉我您可以从 DB2 命令行访问数据库。您可能希望在命令行中执行 LIST DB DIRECTORY 以显示您的数据库条目,还可以通过 LIST NODE DIRECTORY 查看数据库驻留在哪些节点上。

    【讨论】:

      【解决方案2】:

      可能的原因是您丢失了硬盘上的数据库文件。

      • 使用命令检查。

        db2diag -g db=database name > log.txt
        
      • 打开 log.txt,您将看到如下消息。在这种情况下,我丢失了一些 db2 配置文件。

      • 创建缺少的文件夹并复制 db2 备份中的配置文件

      • 使用备份文件恢复数据库。

      【讨论】:

        【解决方案3】:

        当您尝试通过编程语言(PHP、python 或其他)与 DB2 交互时,您使用与 db2 客户端应用程序交互的库(例如 ibm_db for python)来连接/查询您的数据库。

        如果您的工作站上安装了多个 IBM Data Server 客户端软件包,您可能无法使用正确的一个来访问您的数据库。

        因此,您必须验证您的 PHP api 使用哪个客户端来完成这项工作。为此:

        1. 确定包含 db2 客户端实用程序的 ../clidriver/bin 文件夹(在我的情况下,它位于我的 python 安装文件夹/site-packages/ibm_db-2.0.8-py3.6.egg/clidriver/bin
        2. 运行命令 db2cli validate,它将显示您正在使用的客户端
        3. 如果您在当前工作站上所有 IBM Data Server 客户端软件包的列表中有多个条目: 并且您没有使用其中一个 IBMDBCL_ 客户端,您必须通过双击 db2swtch.exe(以管理员身份运行)并按照视觉说明切换到 IBMDBCL_ 项来切换客户端
        4. 如果它不起作用,请卸载并重新安装您的库(在我的情况下 pip uninstall ibm_dbeasy_install ibm_db

        您可以在同一台机器上找到更多关于管理更多db2客户端的信息here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-04-06
          • 2013-07-19
          • 1970-01-01
          • 1970-01-01
          • 2013-08-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多