db2客户端连接远程服务器-客户端配置

这两天代码写完后,其他同事的DB2服务器也装好了。给了下面的一些信息:

IP:

端口:

数据名:

用户名、密码

为了能对数据进行操作,所以需要在LINUX环境下配置一个客户端用于连接服务器。

从昨天开始吧,配置了两天才配置好。这过程中因为对DB2的安装与配置不了解,走了不少弯路。下面这里,我将以一个全新的linux环境来说明一下如何安装配置一个可以连接上服务器的客户端。

IP:

端口:

数据名:

用户名、密码

一、首先得安装DB2的客户端

我因为需要开发环境,就还是前几天安装的DB2 Application Development

Client。详细的安装步骤上面的博客里面有步骤。

二、新建DB2客户端实例

DB2的客户端的新建是通过db2icrt命令进行的。该命令是在安装好的DB2客户端的instance目录下面,如我的是在:/opt/IBM/db2/V8.1/instance目录下面。

可以通过db2icrt -h获得帮助信息。具体新建实例的命令如下图:

db2 看配置是否生效 查看db2配置_怎么查看db2远程服务器

图(1)

这里说明如下两点:

1)该命令必须以root用户运行

2)命令里面的最后的gpadmin是我所在机器上(客户机)我想通过该用户连接远程服务器的用户名。也就是说我通过登录gpadmin用户,去远程连接服务器

3)实例创建成功后会在gpadmin家目录下面创建一个sqllib目录。该步必须创建,如果没有实例,则不会有sqllib目录的创建,如果没有创建就直接去进行DB2的编目工作,后面就会报错。我刚开始就是一直没有创建实例就想编目,如我进行如下命令:

db2 catalog tcpip node db2_33 remote hostip server 50001

ostype linux

结果就一直报错如下:

SQL10007N Message "-1390" could not be retrieved.

Reason code: "3".

这个报错的意思就是找不到消息文件。或者消息文件的目录不存在。

关于这个错误,我在网上查了老长的时间。根据DB2的错误原因手册,对于此错误的提示如下:

-------------------------------------------------------------------------------------------------------

SQL10007N 未能检索消息 " "。原因码:"

"。

说明:

未能从消息文件中检索所请求的消息 。原因码

是下列其中之一

1. 环境变量 "DB2INSTANCE" 未设置或设置为无效的实例。更正它并再次尝试。

2. 找到消息文件,但该文件因许可权而未能打开。检查消息目录下的文件的文件

许可权。

3. 找不到消息文件。该文件不存在或者消息文件所在的目录不存在。检查缺省目

录或与"LANG"环境变量同名的目录是否存在于消息目录下。

4. 所请求的消息在消息文件中不存在。或者消息文件过时,或者它是不正确的消

息文件。

5. DB2CODEPAGE 设置为数据库不支持的代码页,或者客户机的语言环境不受数据

库支持。

6. 发生了意外的系统错误。重试执行。如果问题仍存在,请与 IBM 代表联系。

7. 内存不够。尝试获取专用内存失败。再次尝试。

用户响应:

在验证下列各项之后,重新发出该命令:

* 对于尝试此命令的用户名,确保 DB2INSTANCE 环境变量设置为正确的文字串

* 确保对尝试此命令的用户名指定了正确的主目录(即在 /etc/psaawd 文件中)

* 对于尝试此命令的用户名,确保将 LANG 环境变量设置为对于所安装的语言而

言是正确的值,或者设置为"C"

如果以上都正确,但错误仍发生,那么重新安装 DB2。

-------------------------------------------------------------------------------------------------------

根据以上的错误提示,也可以看出消息文件不存在或消息文件所在的目录不存在,但并没有明确指出消息文件是什么。消息文件所在的目录是哪个目录。后来我经过再三查找,终于找到,消息文件“可能”就是sqlnodir和sqldbdir文件,所在的目录为~/sqllib/下面的sqlnodir和sqldbdir目录下面。而这两个目录之所以存在,就必须创建数据库实例。所以如果没有创建数据库实例,就会报上面的错误。

三、对远程数据库进行编目

DB2里面的数据库编目这个概念,后面我再专门有一篇里面介绍,其实也是网上别人写明的转载过来。

不过在编目家前,首先还得初始化一个DB2环境,也就是运行一下sqllib目录下面的db2profile文件。

如:source db2profile

这里之所以是运行db2profile,是因为我所在的环境是bash,如果是csh那么就得运行 db2cshrc

这个SHELL;

然后再是编目啦,详见下面图片:

db2 看配置是否生效 查看db2配置_怎么查看db2远程服务器

四、编目完成后就可以连接数据库啦。如:

db2 connect to cimm user usrname using password

但是为了保证每次我们登录后都能直接连接,我们还需要做如下设置:

把db2profile放到用户的.bash_profile里面进行加载,如下图:

db2 看配置是否生效 查看db2配置_怎么查看db2远程服务器

以上步骤完成后,就可以每次登录后都能连接db2来进行打开db2的连接环境,后续就可以直接连接使用啦。

至此,一个DB2的客户端就算是安装配置完成了。