window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)

主从复制应用场景

MySQL 主从复制集群功能使得 MySQL 数据库支持大规模高并发读写成为可能,同时有效地保护了物理服务器宕机场景的数据备份。

1、从服务器作为主服务器的实时数据备份。

2、主从服务器实现读写分离,从服务器实现负载均衡。

3、把多个从服务器根据业务重要性进行拆分访问。

主从复制实战(一主多从)

这里准备三台主机,没有条件,可以用虚拟机代替

主服务器:192.168.1.235

从服务器1:192.168.127.129

从服务器2:192.168.127.130

主机之间相互能ping的通,在三台主机上面安装各自mysql,我这里用的是5.7版本

主服务器配置:

找到mysql配置文件,可以在【服务】里面找到mysql配置文件的位置

window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第1张图片

打开配置文件,在【mysqld】节点下添加

#唯一,要与从机的不同

server-id = 1

# Binary Logging.

#开启二进制日志

log-bin= mysql-bin

注意server-id要唯一。

命令行登录mysql,mysql -uroot -proot

1、分别给两个从服务器创建用户:

CREATE USER '使用名'@'备机IP地址' IDENTIFIED BY '密码';#创建用户

2、分别给两个从服务器用户赋权

GRANT REPLICATION SLAVE ON *.* TO '使用名'@'备机IP地址';#分配权限

3、刷新权限

flush privileges

4、重启mysql,登录mysql,输入show master status;

window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第2张图片

5、为防止position一直变动,此时我们给主服务器加上只读锁

flush table with read lock;

从服务器配置:

这里只配置一个,另一个也是一样的配置

1、同主服务器一样,在mysql配置文件中,加入

#唯一,要与主机或其他从机的不同

server-id = 2

# Binary Logging.

#开启二进制日志

log-bin= mysql-bin

2、重启mysql服务器,登录mysql服务器,mysql -uroot -proot

CHANGE MASTER TO

MASTER_HOST='192.168.1.235', #主机的IP

MASTER_USER='slave1', #之前创建的那个使用名

MASTER_PASSWORD='slave1', #密码

MASTER_LOG_FILE='mysql-bin.000007', #这是主库中show master status;File下的那个值

MASTER_LOG_POS=154;#这是主库Position下的那个值

开启slave同步进程

start slave;

查看slave状态

show slave status\G

window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第3张图片

当Slave_IO_Running和Slave_SQL_Running都yes时,主从复制创建成功。

主服务器给表解锁:unlock tables

在主服务器创建数据库:

库名:123,建表:test,插入数据

window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第4张图片window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第5张图片

从服务器1:192.168.1.129

window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第6张图片window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第7张图片

从服务器2:192.168.1.130

window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第8张图片window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从)_第9张图片

到此,mysql一主多从已经搭建完毕

常见错误:

1、出现Slave_IO_Running:No:https://www.jb51.net/article/27220.htm

2、出现Slave_SQL_Runing:No:https://blog.csdn.net/heng_ji/article/details/51013710

3、当主服务器中有个库从服务器从来没有,如果主服务器操作之后,从服务器就会存在一个或多个事务需要手动去跳过

slave stop;

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务

slave start

不然就会在之后的同步过程中会同步失败,想要通过配置,自动跳过这些错误的事务,在mysql的配置文件【mysqld】节点中加入

slave-skip-errors=all

你可能感兴趣的:(window10实现MySQL主从_windows10系统中实现mysql主从复制(一主多从))