【Mysql】主从复制

主节点配置

主机配置文件

主要配置有以下

server-id=1 #服务器id (主从必须不一样)
log-bin=mysql-bin # 打开日志(主机需要打开),这个mysql-bin 可自定义,也可加上路径
binlog-do-db=dblog #要给从机同步的库
binlog-ignore-db=mysql #不给从机同步的库(多个写多行)
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
expire_logs_days=3 # 自动清理 3 天前的log文件 可根据需要修改

下面是我用的配置
【Mysql】主从复制

## 检测 binLog开启情况
show variables like "%log_bin%"; 

【Mysql】主从复制

从节点配置

server-id=2 #服务器id (主从必须不一样)

从节点配置 只要保证和主节点的ID不一致即可。如果从节点还是需要被复制到二级从节点。则需要打开从节点的

log-bin=mysql-bin 
``

## 同步账户权限配置

因为从复制主,需要登录主节点的Mysql服务器上。故需要在主节点中,添加一个从节点的只读账号。这里面有很多坑。


```shell
# 主配置:增加从机复制账户并授权,以便从机远程登录过来复制 binlog
create user ‘replicationUsername‘@‘%‘ identified by ‘Passwd‘;
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO ‘replicationUsername‘@‘%‘  WITH GRANT OPTION;

在主配置完账号之后,查看一下主节点日志写的状态

show master status;

【Mysql】主从复制
可以看到主节点写到了 mysql-bin.000002 的第156个节点, 正在记录Binlog_Do_DB的数据库是dblog
所以我们此刻要做的是,让从节点此时对齐主节点的这个位置 此时不要主节点进行进任何操作
进入到slave从节点
将刚才记录的主节点的binlog位置信息记录进行一个对齐

 CHANGE MASTER TO  
    MASTER_HOST=‘121.10.10.1‘,
    MASTER_PORT=33068,我修改了默认端口
    MASTER_USER=‘dev‘,
    MASTER_PASSWORD=‘dev‘, 
    MASTER_LOG_FILE=‘mysql-bin.000002‘, MASTER_LOG_POS=156;

从节点的启动

#启动从节点
start slave;
#关闭从节点
stop slave;
# 查看从节点的状态
show slave status \G;

注意:在CHANGE MASTER 的时候 必须要先stop slave

这个图片有延迟 , master_log_pos 又有写入 所以不是156了。
【Mysql】主从复制

主要遇到问题:

  1. 用户权限问题,配置好之后,需要用show slave status \G; 命令 多观察几次装填
    查看
    【Mysql】主从复制
    上面IO双OK ,下面IO 容易出现用户权限不足的问题。 用户权限不足就用上面方法重新创建一个新权限。
  2. 用户密码设置强度的问题。 默认密码强度高,自己用上面设置用户密码,肯定会告诉你强度不够,这时候需要
 show variables like "%password%";
 set global validate_password_policy=‘LOW‘;(需要注意mysql5.7以前还是以后这个参数是有变化的validate_password.policy)
 FLUSH privileges

【Mysql】主从复制

【Mysql】主从复制

上一篇:MySQL启动过程的问题


下一篇:Photoshop黄色皮肤变白里透红教程