我在我的 Windows 7(64 位)笔记本上安装了 DB2 Express 10.1。现在安装完成后我无法连接到数据库。在安装过程中,我将“C:\Datan\db\db2”指定为用于 DB2 的目录。
尝试连接时,出现以下错误:
SQL1031N 在指示的文件系统上找不到数据库目录。
但是数据库似乎在那里:
db2 => connect to db2inst
SQL1031N The database directory cannot be found on the indicated file system.
SQLSTATE=58031
db2 => list database directory
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = DB2INST
Database name = DB2INST
Local database directory = C:\Daten\db\db2\IBM\DB2\DB2INST
Database release level = f.00
Comment =
Directory entry type = Indirect
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =
我验证了该目录的文件系统权限是否正确(运行 DB2 服务的用户对该目录具有完全控制权,我也将他设为所有者)。
的内容C:\Daten\db\db2\
如下所示:
\---IBM \---DB2 \---DB2INST +---cfg +---cfgcache +---DB2 | +---ctrl | +---hmonCache | | \---DB2 | | \---0 | | \---ossipcres | +---日志 | +---安全 | | \---审计数据 | +---spmlog | | \---SPMLOGSD | +---SQLDBDIR | +---TMP | \---UIF +---DB2DAS00 | +---cfg | +---转储 | +---日志 | +---元数据 | \---tmp | +---dastmp | \---schedtmp +---db2dump +---功能 | \---不设防 \ - -执照
然后我尝试重新编目数据库:
db2 => 取消编目数据库 db2inst DB20000I UNATALOG DATABASE 命令成功完成。 DB21056W 在目录高速缓存被删除之前,目录更改可能不会生效 神清气爽。 db2 => 目录数据库 db2inst on "c:\Datan\db\db2\IBM\DB2\DB2INST\" DB20000I CATALOG DATABASE 命令成功完成。 DB21056W 在目录高速缓存被删除之前,目录更改可能不会生效 神清气爽。
但这也无济于事。
由于某种原因,DB2 似乎无法访问(现有)目录:
db2 => 列出“c:\Datan\db\db2\IBM\DB2\DB2INST\”上的 db 目录 SQL1031N 在指示的文件系统上找不到数据库目录。 SQLSTATE=58031 db2 => 列出数据库目录
我没有使用 DB2 的经验,上次安装 Express 时一切顺利,所以我现在有点迷茫。
如果您在 C:\Daten\db\db2\IBM\DB2 中构建数据库,那么这应该是您的数据库目录的路径。(即,它应该比您的数据库所在的位置高一)。
另外,只是想知道您在构建数据库时使用了什么命令?你在哪里指定它住在哪里?
通过以下步骤解决了类似的问题:
db2stop
db2set DB2COMM=tcpip
3.1。可选的
db2set DB2_CREATE_DB_ON_PATH=YES
db2 CATALOG ADMIN TCPIP NODE {your_node_name} REMOTE {host_name} SYSTEM {system_name} OSTYPE {your_os_type_code}
db2start