集群搭建-mysql-主从复制


前言

  主从复制(也称 AB 复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。
  本文将实现数据库的主从复制

一、主从复制原理

  MySQL 主从复制就是将一个 MySQL 实例(Master)中的数据实时复制到另一个 MySQL 实例(slave)中,而且这个复制是一个异步复制的过程。
  实现整个复制操作主要由三个进程完成的,其中两个进程在 Slave(sql_thread 和IO_thread),另外一个进程在 Master(IO 进程)上。

二、具体步骤

  • 先决条件
    • 192.168.253.164 mysqk版本 5.7
    • 192.168.253.190 mysql版本 5.7
  • 安装数据库参考
#12.yum安装数据库7.5脚本 
#!/usr/bin/bash
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
yum -y install yum-utils  #直接使用命令修改要安装数据库
yum-config-manager --enable mysql57-community 
yum-config-manager --disable mysql80-community
yum install -y mysql-community-server
systemctl start mysqld
systemctl enable mysqld
#grep password /var/log/mysqld.log  过滤密码
#mysqladmin -uroot -p'旧密码' password '新密码'
  • 数据库设置好初始化之后,进行如下操作
进入数据库 授权从库
>mysql CREATE USER 'repl'@'%'
>mysql GRANT REPLICATION SLAVE ON *.*  TO  'repl'@'%'  identified by 
 '密码';   #注意实际进行授权操作时 出于安全考虑应设置具体ip地址
  • 在另一台从服务器进行测试
[root@localhost ~]# mysql -urepl -p'密码' -hmysql-master1 #对主库进行解析
  • 在主库上修改mysql配置文件
[root@localhost ~]# vim /etc/my.cnf #[mysqld]下添加如下内容
server-id=1   #定义server id master必写   不可一样
log-bin = mylog #开启binlog日志,master必写
#gtid_mode = ON    #开启gtid
#enforce_gtid_consistency=1   #强制gtid
  • 重启服务
[root@localhost ~]# mysql restart mysqld
  • 在从库进行设置,修改配置文件
[root@localhost ~]# cat /etc/my.cnf  #编辑以下内容
// my.cnf 文件
[mysqld]
server-id=2
[root@localhost ~]# systemctl restart mysqld  #重启服务
  • 进入从服务器进行设置
mysql> CHANGE MASTER TO
MASTER_HOST='mysql-master1',  --主库主机名 也可使ip 
MASTER_USER='repl',           --连接到主服务器的用户
MASTER_PASSWORD='密码';       -- 到主服务器的密码
mysql> start slave;    #启动服务器复制线程
Query OK, 0 rows affected (0.09 sec)
检查从服务器io线程与sql线程是否都为 yes

在这里插入图片描述


总结



Guess you like

Origin blog.csdn.net/weixin_52099680/article/details/114001632