mysql主从和mysql主主和半同步复制

建站服务器

一、准备(主从都需要配置):
yum-yinstallmysqlMysql-server		#安装MYSQL
yum-yinstallntpdate			#安装时间同步
echo\'*/1****/usr/sbin/ntpdatentp1.aliyun.com&>/dev/null\'>>/var/spool/cron/root	#配置网络时间同步
servicemysqldstart			#启动服务
chkconfig--addmysqld			#添加为系统服务
chkconfigmysqldon			#开启默认运行级别
	
	

二、主服务器配置:主配置文件默认为:/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
log-bin=master-bin			#开启二进制日志文件
server-id=1				#设置服务器id,保证全局唯一
sync-binlog=1#全局唯一的server-id
innodb-flush-logs-at-trx-commit=1
innodb-support-xa=1
		

servicemysqldrestart	#重启动服务

mysql>showglobalvariableslike\'%server%\';#数据库id
mysql>showmasterlogs;#查看数据库二进制日志
mysql>showmasterstatus;#查看主服务器状态,记住二进制日志名,配置从服务器会用
mysql>grantreplicationslave,replicationclienton*.*to\'copy\'@\'192.168.0.50\'identifiedby\'123.com\';
#授权192.168.0.50主机上的copy用户对所有库有复制权限
mysql>selectHost,User,Passwordfrommysql.user;	#查看用户
		
	
	
三、从服务器配置:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
relay-log=slave-log		#启用中继日志
server-id=10		#服务器id,全局唯一
read-only=1			#将服务器设置为只读模式(对拥有root权限的用户无效)
		
servicemysqldrestart			#重启动服务

mysql>changemastertomaster_host=\'192.168.0.10\',master_user=\'copy\',
master_password=\'123.com\',master_log_file=\'master-bin.000001\',master_log_pos=590;
	master_host#主服务器地址
	master_user#拥有复制权限的用户
	master_password#密码
	master_log_file#从哪个二进制日志开始复制
	master_log_pos#从二进制日志的什么位置开始复制
			
mysql>startslave;		#开启从服务器
mysql>showslavestatus\\G;	#查看从服务器状态
	
	
四、验证主从:
主服务器:
mysql>createdatabasedb_test;	#创建数据库
		
从服务器:
	mysql>showdatabases;		#查看服务器是否同步

	

	
五、主主复制
服务器A:
[mysqld]				#添加内容
	log-bin=master-bin			#启用二进制日志
	relay-log=slave-log			#启用中继日志
	server-id=1				#服务器id,全局唯一
	auto-increment-offset=1			#自增列起始
	auto-increment-increment=2		#自增列一次步进(例:1,3,5,7,9...)
		
mysql>grantreplicationslave,replicationclienton*.*to\'copy\'@\'192.168.0.50\'identifiedby\'123.com\';
mysql>changemastertomaster_host=\'192.168.0.50\',master_user=\'copy\',
master_password=\'123.com\',master_log_file=\'master-bin.000001\',master_log_pos=106;

mysql>startslave;	
mysql>showslavestatus\\G;	
				
			
服务器B:				
[mysqld]				#添加内容
log-bin=master-bin
	relay-log=slave-log
	server-id=10
	auto-increment-offset=2			#自增列起始
	auto-increment-increment=2		#自增列一次步进(例:2,4,6,8,10...)

mysql>grantreplicationslave,replicationclienton*.*to\'copy\'@\'192.168.0.10\'identifiedby\'123.com\';	
	mysql>changemastertomaster_host=\'192.168.0.10\',master_user=\'copy\',
	master_password=\'123.com\',master_log_file=\'master-bin.000003\',master_log_pos=106;
	
	mysql>startslave;	
	mysql>showslavestatus\\G;	
	
	
	
	
六、半同步复制
要想使用半同步复制,必须满足以下几个条件:
1.MySQL5.5及以上版本
	2.变量have_dynamic_loading为YES
	3.异步复制已经存在
		
主:
	mysql>INSTALLPLUGINrpl_semi_sync_masterSONAME\'semisync_master.so\';		#安装插件
	mysql>showplugins;			#查看插件是否安装成功
	mysql>SETGLOBALrpl_semi_sync_master_enabled=1;	#启用半同步
	mysql>showstatuslike\'Rpl_semi_sync_master_status\';	#查看是否在运行
		
从:
	mysql>INSTALLPLUGINrpl_semi_sync_slaveSONAME\'semisync_slave.so\';		#安装插件
	mysql>showplugins;
	mysql>SETGLOBALrpl_semi_sync_slave_enabled=1;		#启用半同步
	mysql>STOPSLAVE			#关闭复制线程
	mysql>STARTSLAVE			#开启复制线程
	mysql>showstatuslike\'Rpl_semi_sync_slave_status\';	#查看是否在运行
	
	
	mysql>showvariableslike\'%Rpl%\';		#查看和半同步相关的服务器变量
		rpl_semi_sync_master_enabled		#是否启用半同步
		rpl_semi_sync_master_timeout		#等待超时时间
		rpl_semi_sync_master_wait_for_slave_count
		#需要等待多少个slave应答,才能返回给客户端
	
	
	mysql>showstatuslike\'%Rpl_semi%\';		#半同步状态
		Rpl_semi_sync_master_clients			#当前半同步复制从的个数
	
	
	
七、和复制相关的文件
从节点:
master.info:用于保存slave连接至master时的相关信息(账号,密码,服务器地址,复制的二进制文件等)
	relay-log.info:保存当前slave节点上已经复制到的二进制文件位置,和relay-log的位置	

	

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的博湖网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
当前文章:mysql主从和mysql主主和半同步复制
文章URL:http://ybzwz.com/article/cgieog.html