mysql主主配置

it2022-05-05  155

mysql主主配置

先登录上mysql 创建同一个用户分配一样的权限: grant replication slave on . to ‘testli’@’%’ identified by “你的密码”; 保存设置; flush privileges; 然后先把mysql服务停止再设置/etc/my.cnf 具体配置如下 服务器1: server-id=1

user=mysql

log-bin=mysql-bin

log-slave-updates

slave-skip-errors=all

slave-net-timeout = 60 #默认3600秒,缩短时间为了防止双YES的延迟假象

sync_binlog=1

auto_increment_increment=1

auto_increment_offset=1

服务器2: server-id=2

user=mysql

log-bin=mysql-bin

log-slave-updates

slave-skip-errors=all

slave-net-timeout = 60 #默认3600秒,缩短时间为了防止双YES的延迟假象

sync_binlog=1

auto_increment_increment=2

auto_increment_offset=1

配置项说明

#配置项

#配置项说明

server-id

不能相同!唯一标识号,值位于1~2^32-1之间

user

这个可以不指定,则使用mysqld_safe指定的用户,或者mysqld_safe默认的用户mysql

log-bin

启用二进制日志文件

log-slave-updates

配置从库上的更新操作是否写二进制文件,需要和log-bin一起使用

slave-skip-errors

值为all表示让从库跳过所有错误(但不能跳过所有DDL所引起的主从错误),也可以只跳过指定的错误,如:–slave-skip-errors=1062,1053;也可以配置只跳过DDL错误,如:–slave-skip-errors=ddl_exist_errors,这等同于:

–slave-skip-errors=1007,1008,1050,1051,1054,1060,1061,1068,1094,1146

sync_binlog

值为1表示主机每次提交事务的时候把二进制日志的内容同步到磁盘上

auto_increment_increment

auto_increment_offset

和auto_increment_offset一起用于主主同步,用来错开自增,防止键值冲突,所以auto_increment_increment和auto_increment_offset两者,至少要有一项值不同。

上述配置会导致同步所有的数据库,借助下列配置项也可以选择性的同步或不同步:

#配置项

#配置项说明

binlog-do-db=test1

binlog-do-db=test2

表示只同步数据库test1和test2,如果还想同步test3,只需要新增一行:binlog-do-db=test3即可

binlog-ignore-db=db1

binlog-ignore-db=db2

表示不同步数据库db1和db2,如果还有db3不想同步,新增一行:binlog-ignore-db=db3即可

相关配置项(对于主从同步,只需要在从上配置):replicate-do-db、replicate-ignore-db、replicate_wild_do_table和replicate_wild_ignore_table。

配置完再启动mysql 登陆mysql 查看作为master的状态 为了防止在查看状态的时候数据库有数据变更,所以要先加上锁: flush tables with read lock; 查看状态: show master status \G 服务1 服务2 服务1 服务2 change master to master_host=‘192.168.70.130’, master_port=3306, master_user=‘mysql’, master_password=‘lwj’, master_log_file=‘mysql-bin.000002’, master_log_pos=154;

change master to master_host=‘192.168.70.128’, master_port=3306, master_user=‘mysql’, master_password=‘lwj’, master_log_file=‘mysql-bin.000003’, master_log_pos=154;

重启slave 分别取消锁:unlock tables;,然后分别开启slave模式:start slave;

查看是否设置成功 分别查看状态: show slave status \G 如果有以下两个参数均为YES,则设置成功: Slave_IO_Running: Yes Slave_SQL_Running: Yes 否则,设置失败。根据报错信息(Last_IO_Error或Last_SQL_Error字段)重新配置以上操作 查看一下hosts show slave hosts;

致谢


最新回复(0)