如何在OSX Mavericks上安装db2 Express-C 10.1

时间:2014-04-28 12:28:03

标签: db2 osx-mavericks

我曾尝试在OSX Mavericks上安装db2 Express-C 10.1,但我收到此处列出的错误:    db2 setup for Mac

2 个答案:

答案 0 :(得分:15)

以下是我在Mac OSX Mavericks上安装db2 express C的步骤。

注意:我完成了登录自己用户的所有命令;当我需要以不同的用户身份运行时,我使用了sudo。

步骤:

  1. 从这里下载DB2 express C: https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=swg-db2expressc&S_PKG=dlmacosx&S_TACT=100KG31W&lang=en_US&cp=UTF-8&dlmethod=http

  2. 双击下载的文件解压缩并解压缩。

  3. 使用以下命令修改系统参数:

    sudo vi /etc/sysctl.conf

    并填充此信息:

    kern.sysv.shmmax=1073741824
    kern.sysv.shmmin=1
    kern.sysv.shmmni=4096
    kern.sysv.shmseg=32
    kern.sysv.shmall=1179648
    kern.maxfilesperproc=65536
    kern.maxfiles=65536
    
  4. 重新启动计算机#非常悲伤我添加了该指令。

  5. 使用以下命令开始安装过程:
    cd ~/Downloads/expc ; sudo ./db2_install

  6. 接受默认路径'/opt/IBM/db2/V10.1'

  7. 等待大约三分钟让脚本运行。

  8. 请注意,成功的运行以“执行成功完成。”

  9. 结束
  10. 使用mac gui创建db2inst1用户(系统偏好设置 - >用户和组)。使用标准(非管理员)权限。

  11. 使用以下命令创建实例:
    cd /opt/IBM/db2/V10.1/instance ; sudo ./db2icrt -u db2inst1 db2inst1

  12. 使用以下命令修改您的个人资料:

    vim ~/.bash_profile
       并添加这些行(可能在文件的末尾):
        PATH = $ PATH:/opt/IBM/db2/V10.1/bin
        if [[-f~db2inst1 / sqllib / db2profile]]
        然后
           source~db2inst1 / sqllib / db2profile
        fi

  13. 登录新的终端窗口以从.bash_profile获取新设置。 退出旧窗户以避免混淆。

  14. 使用此命令初始化示例数据库:
    db2sampl

  15. 使用此命令启动数据库:
    sudo -u db2inst1 db2start

  16. 使用以下命令测试示例数据库:
    db2 connect to SAMPLE
    db2 list tables

  17. 如果需要从远程计算机连接到此数据库,或者希望使用Java连接到此数据库,其中连接需要主机和端口号,请按照说明启用删除连接。您可以推迟运行这些说明,直到您真正需要以这种方式连接。如果不运行这些指令,您可以使用db2命令行进行连接,运行这些指令后,您将能够连接任意数量的需要主机和端口号的工具。

    启用远程连接的步骤:

    1. 使用以下命令更新db2以允许远程服务:

      cd ~db2inst1

      sudo -u db2inst1 db2 update dbm cfg using svcename db2c_db2inst1

      cd是必需的,因为命令需要写入当前目录。

    2. 使用以下命令添加服务端口:

      sudo vim /etc/services

      并将此行添加为文件的最后一行。实际位置并不重要。

      db2c_db2inst1 50000/tcp

    3. 设置db2应使用此命令使用tcp / ip:

      sudo -u db2inst1 db2set DB2COMM=TCPIP

    4. 使用以下命令停止并启动数据库:

      sudo -u db2inst1 db2stop force

      sudo -u db2inst1 db2start

      注意stop命令的force。这将删除任何现有的连接。如果您想要对已连接的用户表示友好,请不要强制使用,并在要求用户断开连接后继续重试该命令。我在强制说明中包含了强制,因为遵循这些说明的任何人都可能是数据库中唯一的用户。

    5. 参考文献:

      如果您确定对这些说明的改进,请发表评论。我会收到通知并进行更改。

答案 1 :(得分:1)

优秀的指示Leons!对于那些在按照他的一步一步和他更新的El Capitan指南而遇到DB2错误的人来说,这可能会有所帮助。

1)运行上述步骤13&时出现以下错误: 14作为db2inst1(我无法使用我的Mac用户ID运行第13步,它可能会给出一些关于userId /密码的其他错误,无法记住):

  

db2inst1 $ db2sampl

启动DB2实例......   创建数据库" SAMPLE" ...   尝试创建数据库" SAMPLE"失败。   SQL1032N未发出启动数据库管理器命令。 SQLSTATE = 57019

' DB2SAMPL'处理完成。

  

db2inst1 $ db2start

SQL1652N发生文件I / O错误。

2)错误是由于以某种方式引入的锁定问题引起的:

2016-08-02-16.43.26.649406-300 I8390E1394等级:错误 PID:19747 TID:4515377152 PROC:db2sysc 实例:db2inst1 NODE:000 EDUID:1 EDUNAME:db2sysc 功能:DB2 Common,Generic Registry,GenRegFile :: Lock,probe:50 消息:ECF = 0x900001DA = -1879047718 = ECF_GENREG_UNABLE_TO_OPEN_LOCK_FILE           无法打开锁定文件 调用:DB2 Common,OSSe,OSSHFile :: open RETCODE:ECF = 0x90000001 = -1879048191 = ECF_ACCESS_DENIED           访问被拒绝

3)在我的~db2inst1 / sqllib中有两个文件以某种方式在我的Mac用户ID而不是db2inst1下创建,它们阻止了db2inst1获取注册表锁:

-rw-r - r-- 1 myMacUserId staff 0 29 Jul 15:58 .global.reg.lock
-rw-r - r-- 1 myMacUserId staff 90 29 Jul 15:58 global.reg

4)删除这两个文件后,DB2就能够成功启动并创建SAMPLE数据库。 :)