首页 > 代码库 > DB2使用笔记

DB2使用笔记

1、赋予用户LOAD权限的步骤

   使用实例用户db2inst1登录数据库;
     使用命令db2 update dbm cfg using sysadm_group dasadm1给管理员用户组dasadm1赋予SYSADM权限;
     使用命令db2 connect to databaseName连接数据库;
     使用命令db2 grant secadm on database to user dasusr1给管理员用户dasusr1赋予SECADM权限;
     使用命令db2 disconnect pom_ct断开当前数据库的连接;
     使用命令db2 connect to databaseName user dasusr1 using 123456使用管理员用户dasusr1连接数据库;
     使用命令db2 grant load on database to user db2inst1赋予用户db2inst1 LOAD权限;

2、常见错误解决方式

     错误码1 解决:SET INTEGRITY FOR table_name IMMEDIATE CHECKED
   错误码3 解决:LOAD FROM *.txt OF DEL TERMINATE INTO 表名

3、临时禁用外键

  共有三种方式

  1)set integrity for table_name off  
   set integrity for table_name foreign key immediate unchecked

  2)禁用:ALTER TABLE <table-name> ALTER FOREIGN KEY <constraint-name> NOT ENFORCED 
   启用:ALTER TABLE <table-name> ALTER FOREIGN KEY <constraint-name> ENFORCED


  3)禁用:ALTER TABLE TABLENAME DISABLE CONSTRAINT CONSTRAINTNAME;
   启用:ALTER TABLE TABLENAME ENABLE CONSTRAINT CONSTRAINTNAME;


4、错误清单及解决方式

1) [IBM][CLI Driver] SQL30081N  检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信API:"SOCKETS"。检测到错误的位置:"172.16.2.140"。 检测到错误的通信函数:"connect"。协议特定的错误代码:"10060"、"*"、"*"。  SQLSTATE=08001

解决:

找到此C:/WINDOWS/system32/drivers/etc/路径下的hosts文件,并用记事本打开

在文件中添加你要连接的服务端主机的IP及 主机名:如127.0.0.1       localhost

2) 找不到数据库别名或数据库名称""或数据库别名 "" 已存在于本地数据库目录或系统数据库目录中。

解决:

    db2 list database directory   查看系统数据库目录,看不到要找的数据库,表示该数据库不在系统数据库目录中

  db2 list database directory on D:(在系统数据库目录找不到的情况下执行该指令,这里是盘符d),然后发现有sample和source的别名。说明在本地数据库目录中。

  db2 catalog database 数据库名 on d: 将数据库编目到节点上

  db2 drop database 数据库名 删除数据库

DB2使用笔记