我曾尝试在OSX Mavericks上安装db2 Express-C 10.1,但我收到此处列出的错误: db2 setup for Mac
答案 0 :(得分:15)
以下是我在Mac OSX Mavericks上安装db2 express C的步骤。
注意:我完成了登录自己用户的所有命令;当我需要以不同的用户身份运行时,我使用了sudo。
从这里下载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
双击下载的文件解压缩并解压缩。
使用以下命令修改系统参数:
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
重新启动计算机#非常悲伤我添加了该指令。
使用以下命令开始安装过程:
cd ~/Downloads/expc ; sudo ./db2_install
接受默认路径'/opt/IBM/db2/V10.1'
等待大约三分钟让脚本运行。
请注意,成功的运行以“执行成功完成。”
使用mac gui创建db2inst1用户(系统偏好设置 - >用户和组)。使用标准(非管理员)权限。
使用以下命令创建实例:
cd /opt/IBM/db2/V10.1/instance ; sudo ./db2icrt -u db2inst1 db2inst1
使用以下命令修改您的个人资料:
vim ~/.bash_profile
并添加这些行(可能在文件的末尾):
PATH = $ PATH:/opt/IBM/db2/V10.1/bin
if [[-f~db2inst1 / sqllib / db2profile]]
然后
source~db2inst1 / sqllib / db2profile
fi
登录新的终端窗口以从.bash_profile获取新设置。 退出旧窗户以避免混淆。
使用此命令初始化示例数据库:
db2sampl
使用此命令启动数据库:
sudo -u db2inst1 db2start
使用以下命令测试示例数据库:
db2 connect to SAMPLE
db2 list tables
如果需要从远程计算机连接到此数据库,或者希望使用Java连接到此数据库,其中连接需要主机和端口号,请按照说明启用删除连接。您可以推迟运行这些说明,直到您真正需要以这种方式连接。如果不运行这些指令,您可以使用db2命令行进行连接,运行这些指令后,您将能够连接任意数量的需要主机和端口号的工具。
使用以下命令更新db2以允许远程服务:
cd ~db2inst1
sudo -u db2inst1 db2 update dbm cfg using svcename db2c_db2inst1
cd是必需的,因为命令需要写入当前目录。
使用以下命令添加服务端口:
sudo vim /etc/services
并将此行添加为文件的最后一行。实际位置并不重要。
db2c_db2inst1 50000/tcp
设置db2应使用此命令使用tcp / ip:
sudo -u db2inst1 db2set DB2COMM=TCPIP
使用以下命令停止并启动数据库:
sudo -u db2inst1 db2stop force
sudo -u db2inst1 db2start
注意stop命令的force
。这将删除任何现有的连接。如果您想要对已连接的用户表示友好,请不要强制使用,并在要求用户断开连接后继续重试该命令。我在强制说明中包含了强制,因为遵循这些说明的任何人都可能是数据库中唯一的用户。
如果您确定对这些说明的改进,请发表评论。我会收到通知并进行更改。
答案 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数据库。 :)