9. 在 Fedora 7 上安装 DB2 Express-C

在继续之前,请确保您已阅读第 5 节第 6 节

请注意,IBM 官方不支持此发行版上的 DB2 9。在使用此发行版时遇到的任何问题,必须先在受支持的发行版上重现,IBM 支持部门才能帮助您解决问题。

这些安装说明基于使用 2.6.21-1.3228.fc7 内核的单分区 32 位安装。

9.1. 安装说明

遇到的唯一安装错误是在启动 ./db2setup 命令时发现的。屏幕显示以下错误

ERROR:
    The following library files could not be loaded by db2langdir
    in /tmp/exp/disk1/db2/linux/install/../bin

        libstdc++.so.5
        libstdc++.so.5
        
    Check the following web site for the up-to-date system
    requirements of IBM DB2 Version 9.1:
        http://www.ibm.com/software/data/db2/udb/sysreqs.html

    Aborting the current installation ...
要解决此错误,请使用 yum 包管理实用程序安装必要的 C++ 兼容性库。
yum -y install compat-libstdc++-33
安装 C++ 库后,安装成功。

9.2. 安装后说明

基本测试结果(更多详细信息请参见第 21 节)已成功。

但是,我发现重新启动后,DB2 实例没有自动重启,因此客户端无法连接到数据库。要纠正此问题,请以实例所有者身份执行以下命令

db2set DB2AUTOSTART=YES
这将确保 DB2 实例在重新启动(有意或无意)后被初始化并准备好接收传入连接。

此外,为了允许通过基于 iptables 的防火墙(默认启用)访问 DB2,需要修改 iptables 防火墙规则集,该规则集保存在以下文件中/etc/sysconfig/iptables文件。如果您已启用防火墙(使用 iptables 服务),并且想要启用到 DB2 服务器的外部连接,则必须开放端口 523 的 TCP 和 UDP 访问以及任何 DB2 服务端口的 TCP 访问。为了实现此目的,请将以下规则添加到iptables文件(在任何 -j ACCEPT 规则中均可)

-A RH-Firewall-1-INPUT -p udp -m udp --dport 523 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 523 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 50000 -j ACCEPT
这些规则直接添加到iptables文件中,以确保它们在系统重新启动时仍然存在。请注意,如果您稍后创建任何其他实例,则需要添加另一个新的 TCP 规则以允许防火墙访问。

您可以使用 db2 get dbm cfg | grep SVCENAME 来检索服务名称,然后检查/etc/services以获取要在防火墙上开放的等效端口值。