windows mysql5.7搭建互为主从配置

tech2022-07-09  170

主库

1. my.ini 新增配置

log-bin=mysql.bin # 使binlog在每N次binlog写入后与硬盘同步 sync-binlog=1 # 1天时间自动清理二进制日志 expire_logs_days=1 # 需要同步的数据库 binlog-do-db=OCS # Error Logging log-error="WIN-1QQDRPR5R2M.err" # Server Id.不能和从库id相同 server-id=1

2. 重启mysql,使用控制台登录mysql

mysql -uroot -p

3.创建从库授权用户

CREATE USER '账号'@'从库ip地址' IDENTIFIED BY '密码';

分配权限

GRANT ALL PRIVILEGES ON *.* TO '账号'@'从库ip地址' IDENTIFIED BY '密码' WITH GRANT OPTION;

5. 刷新权限

flush privileges;

6. 创建测试数据,查看主库状,得到file,position的值;

show master status \G

从库

1. my.ini 新增配置

# Server Id 不能和主库id相同 # bind-address=192.168.1.95 server-id=95 log_bin=mysql-bin # 二进制日志自动删除的天数 expire_logs_days=1

2. 登录从库

3.将主库的demo数据库克隆一份到从库,并给test用户重新赋权限。

grant all privileges on *.* to '账号'@'%' identified by '密码' with grant option;

4.重启mysql

5. slave 与 master 建立连接,进行数据同步

CHANGE MASTER TO MASTER_HOST='主库ip地址', MASTER_USER='账号', MASTER_PASSWORD='密码',MASTER_PORT=3306,MASTER_LOG_FILE='mysql.000007', MASTER_LOG_POS=402394;

6. 主库删从库找不到数据跳过

set global sql_slave_skip_counter=1;

7. 启动slave

start slave;

8.查看从库状态

show slave status \G

遇到的问题

1. 在master上删除一条记录,而slave上找不到。

报错: Last_SQL_Error: Could not execute Delete_rows event on table hcy.t1; Can't find record in 't1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000006, end_log_pos 254 解决方法: 由于master要删除一条记录,而slave上找不到故报错,这种情况主上都将其删除了,那么从机可以直接跳过。可用命令: stop slave; set global sql_slave_skip_counter=1; start slave;

2. 从库一直连接不上主库;

原因是主库不是3306端口,主库的端口没有开放出来;

互为主从

将以上配置反过来配置一遍即可

以上均为自己配置之后做得记录,若有错误还请指正

最新回复(0)