一、双主热备
1、在两台mysql服务器my.ini中分别增加一下配置
服务器1
server-id=1 //服务器id
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
log_bin=test #需要备份的数据库
skip-slave-start=ON #开启同步设置
slave-skip-errors=all #忽略同步错误
#slave-skip-errors=1032 #忽略指定同步错误
服务器2
server-id=2
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
log_bin=test
skip-slave-start=ON #开启同步设置
slave-skip-errors=all #忽略同步错误
#slave-skip-errors=1032 #忽略指定同步错误
2、重新启动mysql服务,设置热备,两台服务器都要执行
停止服务
net stop mysql
1)启动服务
net start mysql
进入mysql
mysql -u root -p
切换到mysql库
use mysql
2)开通root远程访问
运行
update user set host = ‘%’ where user = ‘root’; #开通远程访问
再运行
select host from user where user=‘root’;
3)设置服务器同步
再运行
stop slave;
再运行(master_host 服务器1用服务器2 IP, 服务器2 则用 服务器1 IP )
主服务器1
change master to master_host=‘192.168.0.2’,master_user=‘root’,master_password=’****’;
主服务器2
change master to master_host=‘192.168.0.1’,master_user=‘root’,master_password=’****’;
重新启动 slave
start slave;
查看 slave 状态
show slave status\G;
出现如下接口,表示成功
注:
start slave; 时,如出现以下错误
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
解决方法:
执行 reset slave; 清楚slave配置
reset slave;
注:
MySQL如果端口改变的话,同步时需要指定端口
change master to master_host=‘192.168.0.2’,master_user=‘root’,master_password=’****’,master_port=3316;
二、主从备份
1、在两台mysql服务器my.ini中分别增加一下配置
服务器1
server-id=1 //服务器id
log-bin=mysql-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
服务器2
server-id=2
replicate-do-db = test //需要备份的服务器
2、主服务器重新启动mysql服务
停止服务
net stop mysql
启动服务
net start mysql
3、从服务器重新启动mysql服务
停止服务
net stop mysql
启动服务
net start mysql
进入mysql
mysql -u root -p
切换到mysql库
use mysql
再运行
stop slave;
再运行
change master to master_host=‘192.168.0.2’,master_user=‘root’,master_password=’****’;
重新启动 slave
start slave;