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获得帮助信息。具体新建实例的命令如下图:
图(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 connect to cimm user usrname using password
但是为了保证每次我们登录后都能直接连接,我们还需要做如下设置:
把db2profile放到用户的.bash_profile里面进行加载,如下图:
以上步骤完成后,就可以每次登录后都能连接db2来进行打开db2的连接环境,后续就可以直接连接使用啦。
至此,一个DB2的客户端就算是安装配置完成了。