- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章docker-compose安装db2数据库操作由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
db2数据库在宿主机直接安装比较麻烦,而且涉及用户和权限也不方便,所以采用docker安装db2数据库,这样做的好处是便于数据库的管理和网络隔离,网上一般都是docker直接run的这种不便于后期修改,我们依然采用docker-compose文件来安装db2数据库.
1、编写docker-compose文件,会自动下载数据库镜像 。
此文件自己创建一个文件夹放就可以了 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
version:
"2.2"
services:
db2:
image: ibmcom
/db2
container_name: db211.5
privileged:
true
environment:
LICENSE: accept
DB2INST1_PASSWORD: 你的密码
DBNAME: TESTDB
volumes:
- .
/db2data
:
/database
ports:
- 50000:50000
|
2、查看安装日志等待db2初始化完成,可能需要几分钟 。
1
2
3
4
5
|
#执行docker-compose开始安装
docker-compose up -d
#查看安装日志
docker-compose logs
#差不多到创建完TESTDB的时候就安装好了
|
3、进入db2数据库容器创建自己的数据库 。
1
2
3
4
5
6
|
#进入容器
docker
exec
-it db211.5
bash
#切换到db2inst1用户
su
db2inst1
#查看有没有我们的TESTDB数据库
db2 list db directory
|
4、创建一个用户并赋予权限 。
其他的权限可网上看看,这里简单弄一个连接和增删改查权限 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#创建用户组
groupadd db2group
#添加用户到该组
useradd
-m -g db2group -d
/home/test
test
#修改test密码
passwd
test
#连续输入两次密码
#切换到db2inst1用户下给test赋予连接权限
su
db2inst1
#连接数据库
db2 connect to testdb
#赋予连接权限
db2 grant connect on database to user
test
#赋予增删改查权限
db2 grant DATAACCESS on database to user
test
#关闭连接
db2 connect reset
#其他常用命令
#创建数据库
db2 create db TEST using codeset utf-8 territory CN
#查看当前所有数据库
db2 list db direcotry
#查看库中的表名
db2 list tables
#更多命令省略
|
5、db2导出导入操作命令 。
1
2
3
4
5
|
#db2导出命令(会出现很多文件,将这些文件都打包)
db2move <your databases>
export
#db2导入命令 (将打包后的文件复制到你要导入的服务器上面,然后在该文件夹目录执行以下命令)
db2move <your databases>
import
#如果出现权限问题,用root用户赋予文件夹的可写权限,因为导入命令会创建一个import.out文件
|
至此,docker对于db2的安装就完成了,用docker容器的好处就是可以服务器之间的无缝迁移,将来像往其他服务器迁移数据库也就很方便了.
补充知识:docker 安装db2并挂载至本地 。
1.查找所有的db2镜像 。
docker pull ibmcom/db2 。
2.拉取镜像 。
我这里使用的最新版本的镜像,如果不需要最新的,可以依据自己情况去指定版本。方式:docker pull db2:11.5.4.0 。
docker pull ibmcom/db2 。
3.启动容器并挂载 。
docker run -d -p 50001:50000 --name db2_50001 --privileged=true -e DB2INST1_PASSWORD=123456 -e DBNAME=testdb -e LICENSE=accept -v /data/tadopDataProject/db2/50001:/database ibmcom/db2 。
参数说明:
-d: 表示在后台启动容器; 。
-p 50001:50000: 容器内部的 50000 端口映射主机的 50000 端口; 。
--name db2_50001:将容器命名为 db2_50001 。
--privileged=true:使得容器内的 root 拥有真正的 root 权限.
-e DB2INST1_PASSWORD=123456:设置内置实例用户 db2inst1 的密码为 123456 。
-e DBNAME=testdb:容器启动时自动创建一个名为 testdb 的数据库,如果不指定该参数则不创建数据库 。
-e LICENSE=accept:接受协议 。
-v /data/tadopDataProject/db2/50001:/database:挂载目录,其中/data/tadopDataProject/db2/50001 是宿主机的目录 。
4.查看是否启动成功 。
docker ps 。
netstat -anp |grep 50001 。
5.进入容器执行db2命令 。
docker exec -it db2_50001 bash 。
执行如下命令切换到实例用户 db2inst1:
注意:一定要写中间的那个横条(-).
su - db2inst1 。
查看运行状态:
db2pd - 。
查看数据库和补丁版本:
db2level 。
查看已经创建的数据库:
db2 list db directory 。
执行命令连接 testdb 数据库:
db2 connect to testdb 。
创建一个名为 TEST 的表:
注意:db2 命令后面的sql语句需要用引号括起来,否中会报 -bash: syntax error near unexpected token `(' 错误.
db2 "create table TEST(ID BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY (START WITH 1,INCREMENT BY 1),USER_NAME VARCHAR(20),USER_AGES INT)" 。
查看所以用户表:
db2 list tables 。
我们还可以执行如下命令再创建一个 SAMPLE 数据库(样例数据库):
db2sampl 。
再次执行 db2 list dbdirectory 命令查看是否创建成功 。
最后执行 exit 即可退出容器,返回到宿主机.
链接 testdb 数据库 。
以上这篇docker-compose安装db2数据库操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.
原文链接:http://www.apgblogs.com/docker-compose-db2/ 。
最后此篇关于docker-compose安装db2数据库操作的文章就讲到这里了,如果你想了解更多关于docker-compose安装db2数据库操作的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我当前正在存储给定产品的上传图像,如下所示: class Product(db.Model): images= db.ListProperty(db.Blob) # More prop
每次对架构或新迁移文件进行更改时,我都会运行以下命令: rake db:drop db:create db:migrate db:seed 是否有预先构建的等效方法来执行此操作? 我从我读到的内容中想
在 android 中使用房间作为数据库。当我试图在 sqlviewer 中查看数据时,在数据库文件中找不到表Myapp.db 文件为空。数据/data/packageName/databases/M
我搜索并尝试了很多次,但没有找到我的答案。我有一些用小 cucumber (在 Rails 项目中)编写的项目的功能文件。所有步骤都已定义,如果我单独启动它们,功能本身运行得很好。我可以将所有场景与我
您必须承认,对于 Rails 和数据库的新手来说,rubyonrails.org 上的官方解释使所有这四个任务听起来完全一样。引用: rake db:test:clone Recreate the
当我尝试运行时: heroku run rake db:drop db:create db:migrate 我得到错误: Running rake db:drop attached to termin
rake db:migrate 和 rake db:reset 之间的区别对我来说非常清楚。我不明白的是 rake db:schema:load 与前两者有何不同。 只是为了确保我在同一页面上: ra
我们都知道,我们可以使用 Azure 函数(使用 out 参数或使用 return)在 cosmos DB 中一次保存一个文档,例如: object outputDocument = new { i
我有一个包含 60 多个表的 mysql 数据库。这是在我将 joomla 版本 2.5.3 从本地灯移植到网络服务器时构建的。 我运行 mysql-db: 移植后我发现我无法登录 amdin 区域。
我想轻松地将现有数据库迁移到 Azure 托管。在我的项目中,我使用 Entity Framework DB First。有什么经验教训或例子可以说明如何做到这一点吗? 最佳答案 您本地使用什么数据库
所以,我一直在使用 MagicalRecord 开发 iPad 应用程序,最近在转移到自动迁移商店后我遇到了一些问题。我需要将我的 .db 文件从一个设备同步到另一个设备,所以我需要所有数据都在 .d
自从我在 Heroku 上部署并希望与生产相匹配后,我最近切换到 postgres 来开发一个 Rails 应用程序。当我将数据库名称设置为“postgres”时,我的应用程序安装了 Postgres
我使用 oledb 提供程序(SQLOLEDB 和 SQL Native OLEDB 提供程序)创建了一个示例应用程序。 案例 1:提供者 = SQLOLEDB hr = ::CoInitialize
我正在为 NodeJs 使用 mongodb 驱动程序,其中有 3 个方法: 1) db.collection.insert 2) 数据库.collection.insertOne 3) db.col
我是 datomic 的新手,我仍在努力弄清楚系统是如何构建的。特别是,我不明白 :db.part/db 扮演什么角色,因为每次安装架构时似乎都需要它。有人可以解释一下这一切意味着什么吗? (需要 '
Berkeley DB 是否有空间索引,例如 R-tree? 最佳答案 有人问the same question on the Oracle forum .还没有甲骨文回答。但答案是否定的,它没有任何
请解释一下这是什么意思 $db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); 它给了我一个错误 "E
berkeley-db-je 的最新版本是什么? 来自 oracle , 为 7.5。 但来自maven存储库,它是 18.3.12。 有没有人知道更多的细节? 最佳答案 Berkeley DB Ja
我不明白查询构建器的替换和更新之间的区别。尤其是替换文档... This method executes a REPLACE statement, which is basically the SQL
看起来 BerkeleyDB 被 Oracle 收购了,它没有在其网站上发布源代码? 最佳答案 Sleepycat 于 2006 年被 Oracle 收购。该产品继续在原始开源许可下可用,并继续得到增
我是一名优秀的程序员,十分优秀!