先记录几个数据库操作命令行
清空mysql-bin日志
mysql>reset master;
查看MySQL日志文件
mysql>show binlog events in ‘mysql-bin.000001‘;
查看日志文件列表
mysql>show binary logs;
要同步数据库的数据库必须相同
1.修改master的mysql配置文件
server-id=1000 #设置id保证每个都不重复
log-bin=mysql-bin #日志文件名
binlog-ignore-db=mysql #不同步哪些数据库
binlog-ignore-db=test #不同步哪些数据库
binlog-do-db=news #只同步哪些数据库
expore_logs_days=10 #日志保留时间
sync_binlog=5#控制binlog的频率,执行多少次事务写一次
binlog_format=mixed #日志格式
2.修改玩配置文件重启mysql
net stop mysql
net start mysql
3.进入mysql服务,创建用于同步的账号
mysql -uroot -P33106 -p123456
mysql>Grant replication slave on *.* to ‘slavetest’@‘2.2.2.2’ identified by ‘123456’;
mysql>flush privileges;#更新数据库权限
mysql>show master status;查询master状态,记住file和position
这时候不在操作主数据库了,放置数据状态发生变化
4.修改从数据库slave配置
server-id=2 #设置ID
log-bin=mysql-bin
replicate-do-db=news#要同步的数据库
replicate-ignore-db=mysql,test#不同步的数据库
重启
进入mysql服务
执行同步命令
mysql>stop slave;
mysql>change master to master_host=‘1.1.1.1’,master_user=‘slavetest’,master_password=‘123456’,master_log_file=‘’,master_log_pos=196;#masterlogfile和pos就是刚才记得file和position,pos不加引号
如果修改其他参数,就先停止slave
mysql>stop slave;
mysql>change master to master_port=33106
mysql>start slave;
mysql>show slave status\G;#检查数据库状态,slaveiorunning和slavesqlrunning都是yes就是成功了
5.检查测试
如果slave有1062的报错,就在从数据库配置
slave-skip-errors=1062
Linux
重启MySQL
service mysqld restart
grant replicationslave 报错1045解决办法
进入MySQL执行 select * from mysql.user where User=‘root’
把Grant_priv的N改成Y
grant replicationslave 报错1819(HY000)解决办法
密码设置太简单了,换成复杂的密码