复制MySQL的安装目录 以及 数据库存储数据目录
更改从机my.ini文件 (文件在③和④中 数据库数据保存目录)
更改配置
使用管理员cmd命令 在 从机的安装路径D:\Sort\MySQL-S\bin bin目录中 执行
mysqld install mysqls1 --defaults-file="D:\Sort\MySQLData-S\my.ini" mysqls1 是服务的名称
出现以上提示安装成功
安装完成 服务会有两个MySQL服务
使用不同的端口号都可以连接 由于文件都是复制的 所以账号密码和原来的一样
配置 MySQL 主从服务器
主服务器配置
[mysqld]
#开启日志
log-bin = mysql-bin
#设置服务id,主从不能一致
server-id = 1
#设置需要同步的数据库
binlog-do-db=user_db
#屏蔽系统库同步
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
从服务器配置
[mysqld]
#开启日志
log-bin = mysql-bin
#设置服务id,主从不能一致
server-id = 2
#设置需要同步的数据库
replicate_wild_do_table=user_db.%
#屏蔽系统库同步
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%
重启主从数据库 重启成功说明配置没有问题
创建用于主从复制的账号
切换至主库,登录主库3306
授权主备复制专用账号
#创建用于主从复制的账号db_sync,密码db_sync
create user 'db_sync'@'%' identified with mysql_native_password by 'db_sync';
#授权
grant replication slave on *.* to 'db_sync'@'%';
#刷新权限
FLUSH PRIVILEGES;
确认位点 记录下文件名以及位点
show master status;
WYC-bin.000019 331 这两个值会在从机配置中用到
主从数据同步设置
切换至从库,登录从库3307
修改从库指向到主库,使用上一步记录的文件名以及位点
停止同步
STOP SLAVE;
配置策略
CHANGE MASTER TO
master_host = 'localhost',
master_user = 'db_sync',
master_password = 'db_sync',
master_log_file = 'WYC-bin.000019',
master_log_pos = 331;
启动
START SLAVE;
查看
show slave status
查看Slave_IO_Runing和Slave_SQL_Runing字段值都为Yes,表示同步配置成功。如果不为Yes,请排查相关异常。
本机配置时 总是 Slave_IO_Runing NO ,Slave_SQL_Runing YES 通过查看从机的错误日志得知 server ids重复
查看错误日志文件名称
SHOW VARIABLES LIKE 'log_error';
错误日志文件 文件在数据库的数据保存目录中的data,本机路径为 D:\Sort\MySQLData-S\Data\WYC.err
错误信息
2022-11-13T13:02:21.773170Z 22 [ERROR] [MY-013117] [Repl] Slave I/O for channel '':
Fatal error: The slave I/O thread stops because master and slave have equal MySQL
server ids
these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it). Error_code: MY-013117
错误信息提示uuid重复
查看主机和从机 uuid
show variables like '%server_uuid%';
是由于复制的文件夹 service-id 重复
查阅资料的之 更改uuid即可 (删除从机的auto.cnf文件也行。)
于是修改从机的uuid,之后重启服务,重新设置从机配置,但是还是不行。查询主机,从机的service_id 确实不重复,文件也是不一样的。
停止
STOP SLAVE;
设置从机配置为空
STOP SLAVE IO_THREAD FOR CHANNEL '';
刷新
reset slave all;
重新配置
CHANGE MASTER TO
master_host = 'localhost',
master_user = 'db_sync',
master_password = 'db_sync',
master_log_file = 'WYC-bin.000025',
master_log_pos = 157;
#启动同步
START SLAVE;
查看
show slave status
结果还是 Slave_IO_Runing NO
之后又查阅资料执行以下语句即可
由于错误日志显示server_id 重复,便想着修改server_id 本次是在Slave_IO_Runing 为NO 是直接执行下面的语句 个人感觉先设置server_id和先配置从机复制策略 先后不冲突
stop slave;
set global server_id=238475;
start slave;
再次查看
show slave status
Slave_IO_Runing YES Slave_SQL_Runing YES
测试是否完成主从复制
修改3306 t_user表中的内容
查询3307 t_user中的内容,发现同步成功
版权声明:本文为m0_46267506原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。