Mysql主从复制

Mysql / 330人浏览 / 0人评论

主从复制原理:


 1.master将改变的数 记录在本地的二进制文件中(binary log);该过程称为二进制日志事件
2.slave将master的binary log拷贝到自己的relay log(中继日志文件)中
3.中继日志事件,将数据读取到自己的数据库中

mysql主从复制是异步的,串行化的,有延迟


配置:

配置前准备:开启远程访问、防火墙
关闭win/linux防火墙:win:右键‘网络’;linux:service iptables stop
允许远程连接(win/linux):

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
 FLUSH PRIVILEGES;
主机配置:

[mysqld]
	server-id=1 --id
	log-bin='D:/mysql/mysql server 5.5/data/mysql-bin'  --二进制日志文件
	log-error='D:/mysql/mysql server 5.5/data/mysql-error'  --错误记录文件
	binlog-ignore-db=mysql  --主从同步时忽略的数据库
	binlog-do-db=test  --(可选)指定主从同步时 同步哪些数据库
	
授权哪台计算机的数据库是自己的从数据库
 GRANT REPLICATION slave,reload,super ON *.* TO 'root'@'192.168.2.%' IDENTIFIED BY 'root';
 flush privileges;

查看主数据库状态:

show master status;(mysql-bin.0000、107)


从机配置:

[mysqld]
	server-id=2
	log-bin=mysql-bin
	replicate-do-db=test
	授权哪台计算机的数据库是自己的主数据库
	CHANGE MASTER TO
	MASTER_HOST='192.168.2.2',
	MASTER_USER='root',
	MASTER_PASSWORD='root',
	MASTER_PORT=3306,
	master_log_file='mysql-bin.000001',
	master_log_pos=107;


开启主从同步:

从机:start slave;
	检验:show slave status;
	检查:Slave_IO_Running和Slave_SQL_Running都是yes
	错误信息:Last_IO_Error
	主从查看server-id:show variables like 'server_id';
设置server-id
	关闭主从同步:stop slave;
		set global server_id=2;
		start slave;
		show slave status\G















0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我