Ubuntu+Docker 的数据库使用

一天突然想在Ubuntu的虚拟机里装一个docker 然后在docker里装所有常用的数据库 例如mysql oracle db2 

然后就查了一下并且自己动手实践了一把 这里做下笔记记录一下

首先准备工作安装好一个Ubuntu的虚拟机 和 docker容器 且配置好镜像源

****可以省略不看的部分****

#查看版本
uname -a

#设置root密码 获取root权限
sudo passwd root

#修改Ubuntu镜像源
找到software&update 图标 修改镜像源为aliyun

#安装docker

apt install docker.io

#修改docker镜像源

vi /etc/docker/daemon.json

{"registry-mirrors": ["http://hub-mirror.c.163.com"]}

systemctl restart docker.service

用docker info显示 Docker 系统信息,查看镜像地址是否已经改好了

 

*********************************

 

docker 命令不多讲了

 

************重点来了********

docker下使用mysql

 

docker run -d -p 3306:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=root  docker.io/mysql:latest

这个是组合命令 会自动查询下载镜像并运行一个容器

这里MYSQL_ROOT_PASSWORD=roo是t设置root的密码为root

进入容器,修改root用户允许远程访问

进入容器命令:docker exec -it mymysql /bin/sh

修改远程权限:alter user 'root'@'%' identified with mysql_native_password by 'root';

远程连接直接连接虚拟机的ip:3306即是mysql的地址即可

注意这里用连接工具连接可能回报一个错

plugin caching_sha2_password could not be loaded

” 

解决办法:

打开cmd:mysql -uroot -p 

进入mysql依次执行下面语句

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; #修改加密规则 

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #修改密码加密策略 

flush privileges; #刷新权限

重置密码:alter user 'root'@'localhost' identified by '123456';

 

docker 下使用oracle

1.拉去oracle数据库镜像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g      //这个是到固定地址去拉去镜像
2.启动oracle  自动启动镜像 --restart=always
docker run -p 1521:1521 --name oracle_11g -d --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
3.启动服务
docker start oracle_11g
4.进入控制台设置用户信息 
docker exec -it oracle_11g bash
5.切换到root用户模式下
su root
输入密码helowin    //重点要记住这个密码
6.编辑profile文件配置ORACLE环境变量
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
7.重启配置文件服务
source /etc/profile
8.建立sqlplus软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
9.切换到oracle用户,修改oracle的相关账号密码
>su oracle
登录sqlplus并修改sys、system用户密码
>sqlplus /nolog
>conn /as sysdba
>alter user system identified by oracle;
>alter user sys identified by oracle;
>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

 

********可以省略不看的部分*********
创建表空间及使用

CREATE TABLESPACE XX LOGGING DATAFILE '/tmp/xx.dbf'
SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE 500M EXTENT MANAGEMENT LOCAL;

 

create temporary tablespace XX_temp tempfile '/tmp/xx_temp.dbf'
size 100m autoextend on next 32m maxsize 500m extent management local;

 

CREATE USER helf IDENTIFIED BY helf DEFAULT TABLESPACE XX TEMPORARY TABLESPACE XX_temp;

 

grant connect,resource,dba to helf;
grant create session to helf;

 

drop user helf;
drop tablespace XX including contents and datafiles cascade constraint;

******************************************************

docker 下使用DB2

docker search db2

docker run -it --network=host -p50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept ibmoms/db2express-c:latest bash

执行结束后会直接进入到db2的容器中

 

第一步passwd root 给root 设置密码      //这里的两个密码要记住
还有db2inst1 

切换到实例用户db2inst1

 su - db2inst1

5、启动实例

[db2inst1@docker ~]$ db2start
SQL1063N DB2START processing was successful.
6、查看运行状态

[db2inst1@docker ~]$ db2pd -

Database Member 0 -- Active -- Up 0 days 00:00:39 -- Date 2018-03-26-10.27.52.857206
7、查看已经创建的数据库

[db2inst1@docker ~]$ db2 list dbdirectory

db2 create db [dbname] #创建数据库
db2 list db directory #列出所有数据库
db2 list active databases #列出所有激活的数据库
db2 get db cfg #列出所有数据库配置

创建用户并给与权限连接

切换成root
useradd helf          // 小写 记住小写
passwd

CONNECT TO databasename
CONNECT RESET
db2 grant DBADM on database to user helf 赋权

db2 connect to [dbname] user [username] using [password] 测试连接


1:直接命令如下:
db2 list application show detail查看抄连接
db2 force application(id1, id2)断开连接
2:连接到数据库袭后,用get db cfg for database查看一下maxappls和avg_appls的数百值。
用update db cfg for database using maxappls number,把maxappls设置度得更大问些。
3:在控制中心也可以设置:list applications all 可以看到答当前的进程


#启动数据库实例
db2start
#停止数据库实例
db2stop
如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了
#创建数据库
db2 create db [dbname]
#连接到数据库
db2 connect to [dbname] user [username] using [password]
#断开数据库连接
db2 connect reset
#列出所有数据库
db2 list db directory
#列出所有激活的数据库
db2 list active databases
#列出所有数据库配置
db2 get db cfg

#列出所有数据库详细配置
db2 get db cfg show detail

#更新数据库配置

db2 update db cfg for [dbname] using [paramtername] [parametervalue]
#删除数据库
db2 drop database [dbname]

 

过程不是很复杂就是比较乱 记录下以便以后需要时使用

 

还有一点就是 虚拟机总是容易出现各种问题 所以建议不用时挂起 

 

posted @ 2020-04-23 14:28  D·Felix  阅读(238)  评论(0编辑  收藏  举报