CentOS7安装MySQL并配置主从复制

一、MySQL主从复制原理

  1.1基于语句的复制:在主服务器上执行的SQL语句,再在从服务器上执行一次,默认采用语句复制

  1.2 基于行的复制:把改变的内容复制过去,而不是把命令再在从服务器上执行一遍

  1.3 混合类型复制:一旦发现基于语句无法精确的复制时,就会采用基于行的复制

二、MySQL复制的过程

    2.1 在每个事务完成之前,master(主服务器)在二进制日志中记录这些改变

    2.2 slave(从服务器)开启IO线程,将master的binary log(二进制日志)复制到中继日志

    2.3 SQL线程从中继日志中读取事件,更新slave的数据库

三、安装MySQL

  3.1 安装wget

yum -y install wget

  3.2 下载MySQL的rpm包

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

  3.3 安装

rpm -ivh mysql57-community-release-el7-9.noarch.rpm
yum -y install mysql-server

  3.4 启动MySQL

systemctl start mysqld
systemctl enable mysqld

  3.5 第一次登录MySQL会在MySQL的日志中提供初始密码

grep password /var/log/mysqld.log

在这里插入图片描述
  3.6 登录MySQL

mysql -uroot -pllq_eE_Jy4u3

  3.7 第一次登录进来会提示修改密码
在这里插入图片描述
根据提示修改密码,密码必须要有字母,大小写,符号等,否则修改不成功

alter user 'root'@'localhost' identified by '1234Aa..';

  3.8 现在就能正常使用了
CentOS7安装MySQL并配置主从复制_第1张图片

四、搭建MySQL的主从复制

  4.1 mysql主从复制的前提

    主与从时间必须相同
    主从之间必须能网络互通

  4.2 同步时间

        如果数据库不能连接外网就安装配置ntp

ntpdate ntp1.aliyun.com
  4.3 配置主服务器

    4.3.1 修改配置文件

vim /etc/my.cnf
添加:
server-id 		=1
log-bin=master-bin
log-slave-updates=true

重启MySQL
systemctl restart mysqld

    4.3.2 登录MySQL,授权从服务器

grant replication slave on *.* to 'myslave'@'192.168.1.%' identified by '123456';
myslave:从服务器名
192.168.1.%:从服务器可登录的网段/ip
123456:从服务器登录的密码

    4.3.3 刷新MySQL

flush privileges;

    4.3.4 查看主服务器状态

show master status;

CentOS7安装MySQL并配置主从复制_第2张图片
file : 日志文件
position:偏移量

  4.4 配置从服务器

    4.4.1 修改配置文件

vim /etc/my.cnf
添加:
server-id 		=2 		#ID不能与主服务器相同
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index

    4.4.2 重启MySQL

systemctl restart mysqld

    4.4.3 登录mysql,同步配置

change master to master_host='192.168.1.8',master_user='myslave',master_password='123456',master_log_file='master-bin.000005',master_log_pos=2035;
# master_user:从服务器登录主服务器的登录名
# master_password:从服务器登录主服务器的密码
# master_log_file:刚刚查询出来的日志文件
# master_log_pos:刚刚查询出来的偏移量

    4.4.4 启动同步

start slave;

    4.4.5 查看slave状态,这两项必须为yes

show slave status\G;

CentOS7安装MySQL并配置主从复制_第3张图片
    4.4.6 测试同步是否能成功
在主服务器上创建一个库,从服务器能够同步
CentOS7安装MySQL并配置主从复制_第4张图片
CentOS7安装MySQL并配置主从复制_第5张图片
从创建一个库不能同步到主上
CentOS7安装MySQL并配置主从复制_第6张图片
CentOS7安装MySQL并配置主从复制_第7张图片

MySQL主从复制完成

下一篇MySQL读写分离

你可能感兴趣的:(Linux运维,MySQL)