mysql版本:mysql Ver 14.14 Distrib 5.1.73
master 设置:
server-id=1 //master都设置成1
log-bin=/data/mysql/log_bin_save // binary文件存储路径
binlog_do_db=shenbian //需要同步的数据库
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON . TO aaaaaa@’从机ip’ IDENTIFIED BY ‘bbbbb’;
重启mysql数据库
然后进入mysql数据库命令行,在执行:
如上图,表明master设置成功了;
接下来我们设置slave:
打开slave数据库 的配置文件my.cnf,进行设置:
server-id就选2表示slave,
master-host就是master 数据库的ip
master-user和master-password就是在配置master的时候grant的用户和密码,上图表示的就是aaaaa和bbbbb
重启slave数据库
进入slave的mysql命令行:
执行:mysql>show slave status;
查看有没有问题,
Slave_IO_Running | Slave_SQL_Running
注意这两个选项必须是yes,否则自行查看问题所在
最后 mysql>start slave;
如果此时master数据库里已经有的数据还没有同步过来可以在这时执行命令:
mysql>load data from master;
有可能出现的错误:
mysql>load data from master;
ERROR 1219 (HY000): Error running query on master: Access denied; you need the RELOAD privilege for this operation
这时在master服务器上执行
grant reload ON . TO aaaaaa@’从机ip’ IDENTIFIED BY ‘bbbbb’;
最后检查一下master和slave表是否一致
中间遇到的几个报错:
mysql中Access denied for user ‘root’@’localhost’ (using password:YES)
重启一下mysql就行了
ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation
mysql> flush privileges;执行这个试试
如果在show slave master的时候出现
Master_User的值和在my.cnf中配置的不一样,并且出现此错误提示:”error connecting to master”,此时我们应该手动去更改配置去保持和my.cnf中一致:
1.mysql> stop slave;
2.mysql> reset slave;
3.mysql> change master to master_host=’master ip’,master_user=’aaaaa’,master_password=’bbbbb’;