1.管理员权限在cmd打入 db2cmd
1.解决安装DB2后本地用户没有权限创建/还原数据库权限
1.将登录用户user加入到系统管理员组。
2.将登录用户user加入DB2ADMNS组或者DB2USER组。
3.在db2cmd命令行下,敲入db2set DB2_GRP_LOOKUP=LOCAL,TOKENLOCAL
4.重新启动DB2服务。(1.db2stop 2.db2start)
2.在db2cmd里面打入 db2可以省掉db2指令
https://www.cnblogs.com/atwanli/articles/4388646.html
db2创建数据库和导入导出数据库
1、切换用户
su - db2inst1
2、创建数据库
db2 create db databaseName using codeset utf-8 territory CN
注意:
1.出现错误:SQL1004C there is not enough storage on the file to process the command----物理空间不足
2.创建数据库失败(中间断掉或空间不足引起)无法重新创建,提示已存在,SQL1005N,此时需要删除掉重新创建
解决方案:
查看是否存在系统数据库目录中
db2 list db directory
若存在则可以直接删除
db2 drop db databasename
注意系统创建的文件不能随意删除再复制回来需要修改权限否者出现SQL1036C An I/O error occurred while accessing the database. SQLSTATE=58030
若不存在则需要添加进来再删除
db2 catalog db databasename
将数据库移除系统数据库目录中
db2 uncatalog db databasename
3、连接新数据库
db2 connect to databaseName
4、创建BUFFERPOOL
db2 create BUFFERPOOL testBUFFER SIZE 1000 PAGESIZE 32K
5、创建TABLESPACE
db2 create TABLESPACE testSpace PAGESIZE 32K MANAGED BY SYSTEM USING ('/home/db2inst1/test/ts') BUFFERPOOL testBUFFER
6、创建临时表空间
db2 create SYSTEM TEMPORARY TABLESPACE testBUF PAGESIZE 32 K MANAGED BY SYSTEM USING ('/home/db2inst1/epay/tts') BUFFERPOOL testBUFFER
7、断开连接
db2 disconnect databaseName
8、使用db2inst1角色连接数据库
db2 connect to databaseName
9、创建用户和密码用于连接数据库(一个库下使用不同用户连接数据库管理各自的表(但是数据库名字是同一个,只需连接是指定用户名密码)类似oracle)
1
2
useradd username
passwd password
10、db2inst1进行授权
使用db2inst1连接数据库进行授权给指定用户后,该用户才可以有权访问表
db2 grant dbadm on database to user userName
11、使用创建用户重新连接数据库进行添加当前用户下的表
1
db2 connect to databaseName user username using password
12、导出数据库的所有表及数据(导出的文件是db2move.lst、export.out、tabxx.ixf、tabxx.msg)
1
db2move <数据库名> export
13、导入数据库的所有表及数据(需要修改db2move.lst中的第一个字段是用户名,管理需要导入的表,不需要导入的直接删除即可也可以修改用户)
1
db2move <数据库名> import
14、导出表创建语句
1
db2look -d <数据库名> -u <用户> -e -o <脚本名称>.sql
15、运行sql脚本
1
db2 -tvf <脚本名称>.sql
16、导出单个表数据(只能导出一个表)
1
db2 export to test.txt of del select * from test
17、导入单个表数据
1
db2 import from test.txt of del insert into test
总结:
针对数据库操作千万不要手动删除数据库文件
db2可以创建多个库,也可以只创建一个数据库使用不用的用户进行登录,管理各自的表