计算机学习

您现在的位置是:首页 > mysql > 正文

mysql

mysql主从复制配置

hhb2022-10-16mysql91

复制的基本原理

在这里插入图片描述


2、复制的基本原则

每个slave只有一个master
每个slave只能有一个唯一的服务器ID
每个master可以有多个slave

3、复制的最大问题

数据同步到从机延时

4、配置

mysql版本要求一致且后台以服务运行
主从都配置在[mysqld]结点下,都是小写

0、准备

1、修改server_uuid为随机数,注意主从机的uuid不能重复

修改:

1 // 查看地址

2 show variables like 'datadir'

修改这个地址下的auto.cnf文件。


2、主从机的mysql都无数据插入,可以先把在用的数据库密码改一下

配置完重启mysql


1、主机配置

主机修改my.cnf配置文件

# 主从复制配置如下

#主服务器唯一Id[必填]
server-id=1
#启用二进制日志[必填]
log-bin=自己mysql的路径/mysqlbin 
#主机,读写都可以
read-only=0
#设置不要复制的数据库[可选]
#binlog-ignore-db=mysql
#设置需要复制的数据库[可选](输数据库名字) 
binlog-do-db=test

2、从机配置

#主从复制配置
#从服务器唯一Id
server-id=2#启用二进制日志
log-bin=自己mysql的路径/mysqlbin 
#只读,对拥有super权限的账号是不生效的
read_only = 1

3、建立账户并授权

1、在主机上建立账户并授权slave

创建用户

CREATE USER 'zhangsan'@'%' IDENTIFIED BY '123456';

授权slave

GRANT REPLICATION SLAVE ON *.* TO 'zhangsan' @ '127.0.0.1【从机数据库IP】' IDENTIFIED BY '123456';

注意 从机数据库IP:也可以是%,代表任意主机。

可以通过user表查看对应用户是否具有从库复制的权限

image.png

更新权限

flush privileges;

查询master的状态
show master status

image.png


2、从机上配置需要复制的主机

CHANGE MASTER TO MASTER_HOST='ip地址', MASTER_PORT=3306, MASTER_USER='zhangsan', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysqlbin.000001', MASTER_LOG_POS=154;

//第一次才需执行此语句(后面可以不用,从库重新启动后或者执行start slave,会从上一次断开的bin-log位置读取)

MASTER_LOG_FILE:bin-log日志文件,MASTER_LOG_POS要从那个位置开始复制.可以在主库里面执行show master status来获得对应的文件名和位置

3、启动从服务器复制功能
start slave;

show slave status\G【\G是为了以键值的形式显示,好看一些】
下面两个参数都是Yes,则说明主从配置成功!

在这里插入图片描述

问题1

Slave_IO_Running: no

执行show slave status 查看Last_IO_error字段值

image.png

如上错误(主库和从库的uuid不能一样),可以按以下步骤解决

(1) show variables like 'datadir' 

(2 )select uuid();

把步骤(1)地址下auto.cnf文件的uuid改成(2 )查出来的值

image.png

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~