配置
1、master和node二台服务器,分别到/etc/my.cnf配置文件, 在mysqld里添加一下属性
#master [mysqld] server-id=100 log-bin = mysql-bin auto-increment-increment = 2 auto-increment-offset = 1000 #node [mysqld] server-id=101 log-bin = mysql-bin auto-increment-increment = 2 auto-increment-offset = 1001
2、进入Mysql,分别为二台master创建各种的用户供对方使用
温馨提示: 本案例为双主从,也就是master同步到node,node同步到master。单主从,就只需要不执行带*即可
#master的机器上 CREATE USER 'master'@'%' IDENTIFIED BY '123456'; #node的机器上(*) CREATE USER 'node'@'%' IDENTIFIED BY '123456';
3、分别给用户授予复制权限
#master的机器上 GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' identified by '123456'; #刷新 flush privileges; #node的机器上(*) GRANT REPLICATION SLAVE ON *.* TO 'node'@'%' identified by '123456'; #刷新 flush privileges;
4、分别重启服务,登录mysql用户,通过show master status查看二进制文件名称还有pos位置,为slave配置复制位置
master主服务器
node从服务器
5、分别切换master,注意master_log_file还有master_log_pos mysql里面操作
#node的机器上 change master to master_host='master服务器ip',master_user='master',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154; #master的机器上(*) change master to master_host='node服务器ip',master_user='node',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=154;
6、分别利用命令启动slave
#启动 start slave; #关闭 stop slave;
7、测试结果,在master上创建数据库,node是否能同步,然后再在node上创建表写数据,看master能否同步。
安装完成之后,所有mysql重启就可以了
其他问题
1、ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
很显然,系统提示我们需要更改密码。一般出现这种情况是第一次登录时,需要先修改密码后才能操作。
set password for root@localhost=password('123456');
2、Slave_SQL_Running:no:
解决办法如下:
stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; show slave status;
3、Slave_IO_Running: No
#解决办法 stop slave; #根据master重新设置file和pos CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000026',MASTER_LOG_POS=0; slave start; show slave status;
4、数据库主从日志很大
设置只保留30天的binlog (临时,重启mysql这个参数会失败) set global expire_logs_days = 30; (永久,my.cnf中添加,重启后生效)、 expire_logs_days = 30 查看当前的日志保存天数 show variables like ‘expire_logs_days’;
5、若有其他未提及问题,进行留言,小编会及时回复~