我在AIX服务器上有一些关于DB2的数据库。
我以DB2实例用户ID“chandroo”登录(登录时自动设置db2profile)并发出如下命令并且没有结果。
chandroo@xxxxxxxx::/db2/chandroo> db2 list db directory
chandroo@xxxxxxxx::/db2/chandroo>
但是,如果我直接从安装目录调用db2,我可以看到这些条目,而且我不清楚它为什么会发生。
chandroo@xxxxxxxxx::/opt/IBM/db2/V9.5/bin> ./db2 list db directory
System Database Directory
Number of entries in the directory = 2
Database 1 entry:
Database alias = CHANDB
Database name = CHANDB
Local database directory = /db2/chandroo/db
Database release level = c.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =
Database 2 entry:
Database alias = CHAN
Database name = CHAN
Local database directory = /db2/chandroo/db
Database release level = c.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =
chandroo@xxxxxxxxx::/opt/IBM/db2/V9.5/bin>
答案 0 :(得分:2)
听起来db2profile脚本没有正确获取。需要为当前的AIX shell进程设置该脚本中定义的环境变量,而不是由sh,ksh或bash启动的临时子进程。这是通过指定单个点而不是程序名来运行db2profile脚本来实现的。差异很微妙,但很重要。
如果这是问题,运行此命令将通过正确初始化当前shell进程来解决问题:
. ~chandroo/sqllib/db2profile
和db2 list db directory
之类的命令将开始工作。
下一步是确定在$HOME/.profile
启动脚本中发生的情况。如果您使用上面显示的正确语法看到对db2profile的调用,则$HOME/.profile
上的执行权限可能存在问题。