MySQL8.0实现主从复制

1.这里以windos10系统为例,我们的电脑上需要安装两个mysql服务,如果有的话,可以直接跳到第2步,如果没有的话,可以通过如下方式得到。

找到Mysql安装包复制一份,默认位置在C:\Program Files\MySQL,这里s1是我的复制的mysql。

MySQL主从 混合模式 mysql8.0 主从_MySQL主从 混合模式


然后找到mysql配置文件,mysql配置文件一般和安装包不在一个位置。默认位置在C:\ProgramData\MySQL,ProgramData是个隐藏的文件夹,我们点击查看,然后勾选一下隐藏的项目,就能显示出来了。

MySQL主从 混合模式 mysql8.0 主从_MySQL_02


进去之后目录如下。

MySQL主从 混合模式 mysql8.0 主从_MySQL_03


同样也是复制一份。

2.主从数据库配置

首先打开主数据库的配置文件,my.ini,需要做如下的配置。

#设置需要同步的数据库
binlog-do-db=store_db
binlog-do-db=demo
binlog-do-db=product_db_1
binlog-do-db=product_db_2
#屏蔽系统数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=preformance_schema
#选择row模式 
binlog-format=ROW
# 设置日志
log-bin=mysql-bin

其他的无需修改,同步的数据库根据自己所需进行修改。
打开从数据库my.ini配置文件,需要做出如下修改。

#从数据库所有的port都需要修改,端口号不可与主数据库一致,
port=3307
#修改的值不能和主数据一致
server-id=2
#设置需要同步的数据库
replicate-do-db=store_db
replicate-do-db=demo
replicate-do-db=product_db_1
replicate-do-db=product_db_2
#屏蔽系统数据库
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
#启动MySQL二进制日志系统
log-bin=mysql-bin 
#选择row模式
binlog-format=ROW
#以下配置根据自己的实际安装目录进行修改
secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0-s1/Uploads"
datadir=C:/ProgramData/MySQL/MySQL Server 8.0-s1/Data

屏蔽的数据库和同步的数据库要保持和主数据库一致,然后找到从数据库的这个目录C:\ProgramData\MySQL\MySQL Server 8.0-s1\Data,删除auto.cnf文件。
然后在命令行窗口(以管理员身份运行)中将从库安装为windows服务,注意配置文件位置:

//mysqls1 为服务名字,这个可以随便起。
mysqld install mysqls1 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0-s1\my.ini"

MySQL主从 混合模式 mysql8.0 主从_MySQL主从 混合模式_04

3.SQL语句配置
我们可以执行cmd命令进入主数据库的bin目录下执行 如下命令

cd C:\Program Files\MySQL\MySQL Server 8.0\bin
//u 为数据库用户名 p 为密码
mysql -h localhost -uroot -proot
//刷新权限
FLUSH PRIVILEGES;
//确认位点 记录下文件名以及位点
show master status;

执行后会看到如下的界面

MySQL主从 混合模式 mysql8.0 主从_数据库_05


为方便演示我直接在mysql的一个客户端工具里输入命令

show master status;

MySQL主从 混合模式 mysql8.0 主从_MySQL主从 混合模式_06


打开从数据库,同样也是在从数据库的bin目录下执行如下命令,如果没启动服务的话,重新启动下从数据的服务。

输入命令

//host 数据库IP地址,本地为 localhost user 主数据库的用户名 file `show master status;` 在主数据库执行后查出来的file pos 对应主数据库的Position
CHANGE MASTER TO 
 master_host = 'localhost', 
 master_user = 'db_sync',
 master_password = 'db_sync',
 master_log_file = 'mysql-bin.000004',
 master_log_pos = 22318 ;

MySQL主从 混合模式 mysql8.0 主从_java_07


MySQL主从 混合模式 mysql8.0 主从_数据库_08


重启从数据库服务

MySQL主从 混合模式 mysql8.0 主从_mysql_09


然后从数据执行

show slave status

MySQL主从 混合模式 mysql8.0 主从_java_10


若看到黄圈内均为yes,则代表配置成功,可以去测试添加一条或者删除数据。如果之前配置过主从数据库需要先解除,解除命令如下。

//停止已经启动的绑定
stop slave;
//重置绑定
reset master;