目录
安装docker
安装MySQL
设置MySQL主从(启动单机版MySQL可以不做这一步)
安装Redis
设置Redis主从(启动单机版Redis可以不做这一步)
-
安装docker
- 使用国内镜像一键安装
curl -sSL https://get.daocloud.io/docker | sh
- 配置Docker 仓库之后,可以从仓库安装和更新 Docker。
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 安装 Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io
- docker的常用命令
//启动docker systemctl start docker //拉取镜像 docker pull ://查看自己拉去的镜像 docker images //启动容器 docker run --name <容器名字> -p <暴露的端口> -d <后台启动> //停止容器 | 运行容器 docker stop <容器名字> | docker start <容器名字> //备注:docker镜像和容器的关系,相当云Java的Bean和实例的关系差不多
-
安装MySQL
-
拉取mysql镜像,MySQL版本众多具体想要什么版本可以登录docker hub查看。
//我们现在拉取mysql的5.6.51 版本 docker pull mysql:5.6.51 //创建一个文件用来映射容器内部的配置文件 mkdir /root/mysql/config //运行镜像 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /root/mysql/config/:/etc/mysql/conf.d -d mysql:5.6.51 //--name mysql:给你运行的镜像起个名字叫mysql // -e MYSQL_ROOT_PASSWORD=root:传递变量,设置MySQL的密码为root //-v /root/mysql/config/:/etc/mysql/conf.d: 挂载文件(/root/mysql/config目录的有什么,MySQL容器内的/etc/mysql/conf.d就有什么). //不挂载文件以后想要对MySQL的配置文件修改,就需要进入MySQL容器内修改 //-d mysql:5.6.51:表示后台运行 //进入容器内部 docker exec -it <容器名字> /bin/bash //容器内无法使用vim 和 vi命令需要 下载(每个容器内使用都需要) 先:apt-get update 在:apt-get install vim
-
设置MySQL主从(启动单机版MySQL可以不做这一步)
- 配置MySQL主从至少要启动两个MySQL。
- 修改MySQL主的配置文件(mysql-master)。
- 刚才启动时候做了文件映射的,直接可以在映射的位置新建一个配置文件,添加 一下配置、
- 没做文件映射的,进入MySQL容器,先找到MySQL的my.cnf 文件,添加上面的内容,my.cnf在etc/mysql/下,或者在/etc/mysql/conf.d下面新建一个×××.cnf配置文件也可以。
添加的内容:
- 修改MySQL从的配置文件(mysql-slaver)。
- 进入MySQL从容器内部,还是同一个目录下,修改同一个文件,添加配置如下。
- 连接上图形化工具,添加以下内容(关闭防火墙不然连不上)
- 查看MySQL主和从是否开启日志
SHOW GLOBAL VARIABLES LIKE '%log%'
- 一下在MySQL主操作
//全部在主MySQL中操作 // 创建一个用户,账号master,密码master GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' IDENTIFIED BY 'master'; //账号授权 GRANT ALL ON *.* TO 'master'@'%'; //刷新,让配置生效 FLUSH PRIVILEGES;
- 查询主数据库的状态信息,用来在从数据同步数据。
//在从数据库查询,主节点状态 SHOW MASTER status
- 一下在MySQL从库操作
//一下命令在MySQL从数据库操作 //在主数据库上面创建的那个用户,连接主MySQL服务器,用来同步数据 CHANGE MASTER TO MASTER_HOST="82.156.190.100", MASTER_PORT=3308, MASTER_USER="master",MASTER_PASSWORD="master", MASTER_LOG_FILE="f08252e11999-bin.000002", MASTER_LOG_POS=313; //详细介绍 MASTER_HOST="82.156.190.100" //改成你的ip MASTER_PORT=3308 //mysql主 占用的端口 MASTER_USER="master" //刚才创建用户时候的账号 MASTER_PASSWORD="master" //密码 //我们刚才使用 show slaver status 在主数据库查询的信息填到这里 MASTER_LOG_FILE="f08252e11999-bin.000002" //日志名 MASTER_LOG_POS=313;//
- 查询从节点的状态
- SHOW SLAVE STATUS
- 启动从节点
- start slave
- 关闭从节点
- stop slave
-
安装Redis
//拉取镜像 docker pull redis:6.0.15 //运行镜像 redis-master docker run --name redis-master -p 6379:6379 -d redis:6.0.15 //运行镜像 redis-slaver docker run --name redis-slaver -p 6380:6379 -d redis:6.0.15
-
设置Redis主从(启动单机版Redis可以不做这一步)
//进入redis-master容器 docker exec -it redis-master /bin/bash //链接redis redis-cli //查看redis状态 info replication //redis-master 查询结果 # Replication role:master //当前redis是主节点 connected_slaves:0 //自己下面有0个子节点 master_replid:88935387dfc7d6ae915ae14b809439b0fc195044 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 //redis-slaver 查询结果 # Replication role:master //当前redis是主节点 connected_slaves:0 //自己下面有0个子节点 master_replid:88935387dfc7d6ae915ae14b809439b0fc195044 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:0 second_repl_offset:-1 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0
-
发现redis-master 和 redis-slaver 都是主节点,接下来设置redsi-slaver为从节点
//进入redis-slaver 容器内部 docker exec -it redis-slaver /bin/bash //链接redis redis-cli //设置主节点的端口和IP slaveof 82.159.190.100 6379 //再进入reids-mster 内查看,发现当前已经有了一个子节点 127.0.0.1:6379> INFO replication # Replication role:master //当前 是 master connected_slaves:1 //一个子节点 slave0:ip=82.156.190.100,port=6379,state=online,offset=140,lag=0 master_replid:ce704c63df0857208b616e60d186e14890141ef3 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:140 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:140



