docker安装mysql5.7 + mongo

安装docker

[root@localhost ~]# yum update
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

[root@localhost ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

[root@localhost ~]# yum install docker-ce

[root@localhost ~]# docker version


安装docker-compose 编排容器,可以控制多个容器

root@localhost ~]# yum -y install epel-release

root@localhost ~]# yum -y install python-pip

root@localhost ~]# yum install docker-compose

root@localhost ~]# docker-compose version


ubuntu

sudo apt-get  update  
sudo apt-get install  docker
sudo   apt-get install   docker.io
sudo apt-get install  docker-registry
sudo  api-get install docker-compose 
sudo systemctl  start  docker

docker 安装MySQL

后面跟的是版本号
docker pull mysql:5.7

mysql的配置文件默认在 /etc/my.cnf

运行容器

docker run -d -p 3306:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=root --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

数据库时间不一致 需添加
-v /etc/localtime:/etc/localtime

参数说明:

  • run run 是运行一个容器
  • -d  表示后台运行
  • -p  表示容器内部端口和服务器端口映射关联
  • –privileged=true 设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
  • -v /docker/mysql/conf/my.cnf:/etc/my.cnf 将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
  • -v /docker/mysql/data:/var/lib/mysql  同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
  • -e MYSQL_ROOT_PASSWORD=123456   设置MySQL数据库root用户的密码
  • –name mysql     设值容器名称为mysql
  • mysql:5.7  表示从docker镜像mysql:5.7中启动一个容器
  • –character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码

新建MySQL用户
先进入容器

docker exec -it mysql bash

执行MySQL命令, 输入root密码, 连接MySQL

mysql -uroot -p

输入密码后, 执行下面命令创建新用户 (用户名: test , 密码: test123)

GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;

show now() 发现数据库时间和服务器时间不一致

mysql 容器名 或者id 都行

docker cp /usr/share/zoneinfo/Asia/Shanghai mysql:/etc/localtime
重启
docker restart mysql 

mangodb

docker pull mongo:latest     //拉取最新镜像
docker iamges  // 查看所有镜像
在跟路径下创建 /data/mongo
mkdir -p /data/mongo
docker run -p 27017:27017 -v /data/mongo:/data/db --name mongodb -d mongo --auth

在上面的命令中,几个命令参数的详细解释如下:
-p 映射容器服务的 27017 端口到宿主机的 27017 端口。外部可以直接通过 宿主机 ip:27017 访问到 mongo 的服务
-v 为设置容器的挂载目录,这里是将本机的“/data/mongo”目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
–name 为设置该容器的名称
-d 设置容器以守护进程方式运行
–auth:需要密码才能访问容器服务

docker ps // 查看运行的镜像

在这里插入图片描述
进入mango 里面创建用户
docker exec -it mongodb mongo admin

$ docker exec -it mongodb mongo admin
# 创建一个名为 admin,密码为 admin的用户,验证数据库是 admin 。
>  db.createUser({ user:'admin',pwd:'admin',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});


创建 tf_business_iot 数据库
use tf_business_iot; //  创建数据库
db.auth('admin', 'admin')
要先验证一下 admin 用户 # 创建一个名为 iotroot,密码为 iotpwd 的用户,验证数据库是 ttsf_business_iot,操作权限是readWrite。
db.createUser({ user:'iotroot',pwd:'iotpwd',roles:[ { role:'readWrite', db: 'tf_business_iot'},"readWrite"]});

在这里插入图片描述

在这里插入图片描述

MongoDB用户权限
内建的角色

数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色:backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色:root // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

内部角色:__system 角色说明: Read:允许用户读取指定数据库 readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

如果navicat 看不到 mongodb 的数据库

navicat 打开    查看-》显示隐藏的项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值