Linux环境下Mysql5.7主从配置

Linux环境下Mysql5.7主从配置

  • MySQL主从同步的机制:
    • 一、MySQL同步的流程大致如下:
    • 二、MySQL主从同步的作用:
  • 环境
    • 一、主库配置
      • 1、打开主库my.cnf,编辑配置如下内容:
      • 2、授权主从复制专用账号
      • 3、查询master的状态
    • 从库配置
      • 1、打开从库my.cnf,编辑配置如下内容:
      • 2、执行同步命令
      • 3、检查从数据库状态

MySQL主从同步的机制:

一、MySQL同步的流程大致如下:

 1、主服务器(master)将变更事件(更新、删除、表结构改变等等)写入二进制日志(master log)。

 2、从服务器(slave)的IO线程从主服务器(binlog dump线程)获取二进制日志,并在本地保存一份自己的二进制日志(relay log)

 3、从服务器的SQL线程读取本地日志(relay log),并重演变更事件。

Linux环境下Mysql5.7主从配置_第1张图片

二、MySQL主从同步的作用:

 1、可以作为一种备份机制,相当于热备份(在从备份,避免备份期间影响主服务器服务)

 2、可以用来做读写分离,均衡数据库负载(主写从读)

 3、当主服务器出现问题时,可以切换到从服务器。

环境

服务器:contos7.6
mysql版本:5.7.33
主库ip:10.255.53.46
从库ip:10.255.53.47

一、主库配置

1、打开主库my.cnf,编辑配置如下内容:

vim /etc/my.cnf
[mysqld]
lower_case_table_names=1
character-set-server=utf8
#开启日志 
log-bin = mysql-bin
#设置服务id,主从不能一致,一般设置为ip最后一段
server-id = 46 
#设置需要同步的数据库 
binlog-do-db=mypay 
    
#屏蔽系统库同步 
binlog-ignore-db=mysql 
binlog-ignore-db=information_schema 
binlog-ignore-db=performance_schema
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

2、授权主从复制专用账号

登录主库,执行如下命令

#创建同步帐号db_sync,密码db_sync
GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%' IDENTIFIED BY 'db_sync'; 
#更新数据库权限 
flush privileges; 

3、查询master的状态

show master status; 

在这里插入图片描述
记录一下File信息和Position信息

从库配置

1、打开从库my.cnf,编辑配置如下内容:

vim /etc/my.cnf
[mysqld]
lower_case_table_names=1
character-set-server=utf8
#开启日志 
log-bin = mysql-bin 
#设置服务id,主从不能一样,一般设置为ip最后一段
server-id = 47 
#主从库名相同,设置需要同步的数据库 
#replicate_wild_do_table=mypay.% 
#从库端替换库名
replicate_rewrite_db=mypay -> mypay-slave
#设置需要同步的数据库 
replicate_wild_do_table=mypay-slave.% 

#屏蔽系统库同步 
replicate_wild_ignore_table=mysql.% 
replicate_wild_ignore_table=information_schema.% 
replicate_wild_ignore_table=performance_schema.%
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

2、执行同步命令

根据主库信息,执行同步命令。MASTER_LOG_FILE为File信息、MASTER_LOG_POS为Position信息,从前文记录的信息中读取。

#设置主数据库ip,同步帐号密码,同步位置
CHANGE MASTER TO MASTER_HOST='10.255.53.46',MASTER_PORT=3306,MASTER_USER='db_sync', MASTER_PASSWORD='db_sync',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1529;
#开启同步功能 
mysql>start slave;

3、检查从数据库状态

show slave status

在这里插入图片描述

在这里插入图片描述
当然当你执行完最后一条代码看到两个YES的时候就说明success!

你可能感兴趣的:(mysql,linux,mysql,数据库)