前言
❤Java学习路线个人总结-博客
❤欢迎点赞👍收藏⭐留言 📝分享给需要的小伙伴
文章目录
1、首先要安装Docker 以及Docker-compose
Docker安装
#查看内核
➜ ~ uname -r
4.15.0-96-generic # 要求3.0以上
#查看Centos
➜ ~ cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
安装
1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.需要的安装包
yum install -y yum-utils
3.设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#默认是从国外的,不推荐
#推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新yum软件包索引
yum makecache fast
5.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io
6.使用docker version查看是否按照成功
docker version
- 但是我们可以看见docker只启动了client,我们通过输入service docker start来开启server,之后再次输入docker version来验证
#开始service
service docker start
#开机自动启动docker
systemctl enable docker
#启动docker
systemctl start docker
#重启dokcer
systemctl restart docker
#验证
docker version
Docker-compose安装
1、安装Run this command to download the latest version of Docker Compose 修改自己需要的版本
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如果github dockercompose速度较慢可以使用下面这个,效果一样
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2、赋权Apply executable permissions to the binary: sudo chmod +x /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3、Optionally, install command completion for the bash and zsh shell.
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4、测试(查看版本)Test the installation
docker-compose --version
2、安装MySql
- 拉取MySql镜像
docker pull mysql:5.7.35
- 编写docker-compose-mysql.yml文件
version: '3.0'
services:
#主数据库
master_mysql:
image: mysql:5.7.35
restart: always
container_name: master_mysql
privileged: true
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Shanghai
volumes:
- /opt/master_mysql/data:/var/lib/mysql
- /opt/master_mysql/conf/my.cnf:/etc/mysql/my.cnf
#从数据库
slave_mysql:
image: mysql:5.7.35
restart: always
container_name: slave_mysql
privileged: true
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: root
TZ: Asia/Shanghai
volumes:
- /opt/slave_mysql/data:/var/lib/mysql
- /opt/slave_mysql/conf/my.cnf:/etc/mysql/my.cnf
- 创建主库,从库挂载目录
mkdir -p /opt/master_mysql/data
mkdir -p /opt/master_mysql/conf
mkdir -p /opt/slave_mysql/data
mkdir -p /opt/slave_mysql/conf
- 创建挂载文件
可以直接将下面的配置直接写里面,也可以直接创建为空文件
vim /opt/master_mysql/conf/my.cnf
vim /opt/slave_mysql/conf/my.cnf
- 启动docker-compose-mysql.yml
docker-compose -f docker-compose-mysql.yml up -d
- 查看容器启动是否成功,采用Navicat Premium 15 连接两台MySql测试是否连接成功
3、配置主Master(主)
修改容器配置
修改容器也可以,也可以直接修改你挂载目录里面的my.cnf文件都可行!
- 安装vim
apt-get update
apt-get install vim
- 进入容器
docker exec -it 37111bb4ea57/bin/bash
- 修改配置在my.cnf配置添加内容
- vim /etc/mysql/my.cnf
[mysqld]
## 同一局域网内注意要唯一
server-id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
- 重启master_mysql容器
添加用户赋权限
- 添加用户,并赋予权限
-mysql7版本
grant replication slave on *.* to 'slave'@'%' identified by 'root';
-mysql8版本
CREATE USER 'slave'@'%' IDENTIFIED BY 'root';--为从库服务器 设置用户名和密码(表明从服务器的ip可以使%,账号为slave 密码root
grant replication slave, replication client on *.* to 'slave'@'%';--设置权限
flush privileges;--权限生效
show grants for 'slave'@'%';
4、配置从Slave(从)
- 安装vim
apt-get update
apt-get install vim
- 进入容器
docker exec -it ccb28a2e2f90/bin/bash
- 修改配置在my.cnf配置添加内容
- vim /etc/mysql/my.cnf
[mysqld]
## 同一局域网内注意要唯一
server-id=200
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
## 设置为只读,该项如果不设置,表示slave可读可写
read_only= 1
- 重启slave_mysql容器
5、开启Master-Slave主从复制配置
- 进入Master库查看状态
--通过该命令可以查看master数据库当前正在使用的二进制日志及当前执行二进制日志位置
show master status;
记住File和Position,后面Slave库会在这个文件这个位置进行同步数据。此时一定不要操作Master库,否则将会引起Master状态的变化,File和Position字段也将会进行变化。
- 使用Navicat连接Slave(从库)后新建查询,执行以下SQL
MASTER_HOST 主库IP
MASTER_PORT 主库端口
MASTER_USER 刚才创建的同步账号的用户名
MASTER_PASSWORD 刚才创建的同步账号的密码
MASTER_LOG_FILE:指定 Slave 从哪个日志文件开始复制数据,即上文中提到的 File 字段的值
MASTER_LOG_POS:从哪个 Position 开始读,即上文中提到的 Position 字段的值
change master to
master_host='192.168.7.231',
master_user='slave',
master_password='root',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=885;
- 使用start slave命令开启主从复制过程
-- 顺便提供下其它命令 stop slave 停止slave。reset slave重启slave。 reset master重启master。
start slave;
- 查看配置有没有成功
show slave status;
6、测试
主库添加库添加表,刷新从库查看是否成功