Mysql学习笔记—MySQL的集群架构主从复制实战
1.搭建环境
- 下载mysql的rpm包,解压
- 查看是否有安装的mariadb
rpm -qa | grep mariadb
- 如果有就卸载,没有就跳过这步,卸载如下:
rpm -e mariadb包的名称 --nodes
- 安装mysql的rpm包,是有顺序的,安装命令
rpm -ivh 包名
- common包
- libs包
- libs-compat包
- client包
- server包
- devel包
- 初始化一下mysql,使用命令如下:
mysqld --initialiaze --user=mysql
- 查看初始化mysql的密码,使用命令如下,红色框式部分是密码
cat /var/log/mysqld.log
2. 主从配置实战: 使用服务器或者docker都可以构建mysql的环境
2-1.docker环境
- 启动mysql镜像
docker run -p 3301:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 docker run -p 3302:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 docker run -p 3303:3306 --name mysql-slave2 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- 进入docker启动的镜像
docker exec -it mysql-master /bin/bash
- 编辑配置文件前先安装vim,docker里面没有
apt-get update apt-get install vim或 apt-get -y install vim
- 切换到 /etc/mysql目录下,vim my.cnf
- 编辑完文件需要重启
service mysql restart
- 重新启动
mysql-master
docker start mysql-master
- 重新进入
mysql-master
docker exec -it mysql-master /bin/bash
- 赋予权限(123456是密码)
grant replication slave on *.* to 'root'@'%' identified by '123456'; grant all privileges on *.* to 'root'@'%' identified by '123456'; # 刷新权限 flush privileges;
- 查看master状态,show master status;
- 设置slave,到第七步都是一样的,不过配置文件内容如下:
- 设置slave内容,如下:
(master_log_pos是position)
change master to master_host='172.17.0.2',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=1746;
- 开启从库
start slave;
- 停止
stop slave;