mysql主从和mysql主主和半同步复制
admin
2023-03-20 22:21:28
0
一、准备(主从都需要配置):
    yum -y install mysql mysql-server		#安装mysql
  yum -y install ntpdate			#安装时间同步
  echo '*/1 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root	#配置网络时间同步
  service mysqld start			#启动服务
  chkconfig --add mysqld			#添加为系统服务
  chkconfig  mysqld on			#开启默认运行级别
	
	

二、主服务器配置:主配置文件默认为:/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
		

  service mysqld restart	#重启动服务

  mysql> show global variables like '%server%';      #数据库id
  mysql> show master logs;      #查看数据库二进制日志
  mysql> show master status;    #查看主服务器状态,记住二进制日志名,配置从服务器会用
  mysql> grant replication slave,replication client on *.* to  'copy'@'192.168.0.50' identified by '123.com';
      #授权192.168.0.50主机上的copy用户对所有库有复制权限
  mysql> select Host,User,Password from mysql.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权限的用户无效)
		
    service mysqld restart			#重启动服务

    mysql> change master to master_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> start slave;		#开启从服务器
    mysql> show slave status\G;	#查看从服务器状态
	
	
四、验证主从:
    主服务器:
        mysql> create database db_test;	#创建数据库
		
    从服务器:
	mysql> show databases;		    #查看服务器是否同步

	

	
五、主主复制
    服务器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> grant replication slave,replication client on *.* to  'copy'@'192.168.0.50' identified by '123.com';
    mysql> change master to master_host='192.168.0.50',master_user='copy',
          master_password='123.com',master_log_file='master-bin.000001',master_log_pos=106;
    
    mysql> start slave;	
    mysql> show slave status\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> grant replication slave,replication client on *.* to  'copy'@'192.168.0.10' identified by '123.com';	
	mysql> change master to master_host='192.168.0.10',master_user='copy',
	    master_password='123.com',master_log_file='master-bin.000003',master_log_pos=106;
	
	mysql> start slave;	
	mysql> show slave status\G;	
	
	
	
	
六、半同步复制
    要想使用半同步复制,必须满足以下几个条件:
        1. MySQL 5.5及以上版本
	2. 变量have_dynamic_loading为YES
	3. 异步复制已经存在
		
    主:
	mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';		#安装插件
	mysql> show plugins;			#查看插件是否安装成功
	mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;	#启用半同步
	mysql> show status like 'Rpl_semi_sync_master_status';	#查看是否在运行
		
    从:
	mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';		#安装插件
	mysql> show plugins;
	mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;		#启用半同步
	mysql> STOP SLAVE			#关闭复制线程
	mysql> START SLAVE 			#开启复制线程
	mysql> show status like 'Rpl_semi_sync_slave_status';	#查看是否在运行
	
	
	mysql> show variables like '%Rpl%';		#查看和半同步相关的服务器变量
		rpl_semi_sync_master_enabled		#是否启用半同步
		rpl_semi_sync_master_timeout		#等待超时时间
		rpl_semi_sync_master_wait_for_slave_count
		    #需要等待多少个slave应答,才能返回给客户端
	
	
	mysql> show status like '%Rpl_semi%';		#半同步状态
		Rpl_semi_sync_master_clients			#当前半同步复制从的个数
	
	
	
七、和复制相关的文件
    从节点:
        master.info:用于保存slave连接至master时的相关信息(账号,密码,服务器地址,复制的二进制文件等)
	relay-log.info:保存当前slave节点上已经复制到的二进制文件位置,和relay-log的位置	

	

	


相关内容

热门资讯

学习新语·政绩观|“愚公”治山... 统筹:郭洁宇 朱旭东设计:殷哲伦新华社新媒体中心新华社出品
请问瓷砖外墙做防水多少钱 已有2条回答 回复者:小休维 瓷砖外墙防水涂料60元一平方。外墙透明防水涂料无色、透明、涂覆...
旧房翻新可以直接贴壁纸吗? 不可以的。首先墙纸就不能贴在乳胶漆墙面上,因为乳胶漆的工艺、质量等都会影响到墙皮的附着力,所以在乳胶...
怎样翻新厨房瓷砖墙面?墙面瓷砖... 厨房理不管是哪一种的瓷砖,都可以在旧瓷砖上贴新的瓷砖。个别严重起鼓或者破坏的瓷砖需要革除,革除后用马...
无缝瓷砖真的可以做到无缝吗 无缝瓷砖之间的缝隙确实比较小,但是想要做到真正的无缝应该是不太可能的,据说这种无缝瓷砖每个瓷砖之间的...
瓷砖可以翻新吗 瓷砖可以翻新。瓷砖翻新的方法有多种,比如可以重新进行上色,用瓷漆在瓷砖上重新进行涂色和美化,在施工过...
庄瑞雄称沈伯洋当市长2天就能解... 海峡导报综合报道 台民意机构民进党团干事长庄瑞雄日前称,鼠患是城市治理的问题,蒋万安必须要展现市长的...
双层大巴撞上限高架,车头嵌入架... 5月9日,广东湛江一双层大巴撞上限高架,造成车身和限高架受损,无人受伤。相关视频显示,一辆白色双层大...
五一票房冠军是惊悚片,“下沉市... 【文/新潮观鱼】今年“五一”档,有一个有意思的现象:一部看起来没有“爆款相”,演员和导演都没有很大票...
“几轮博弈后,特朗普发现:中国... 【文/观察者网 王一】当地时间5月9日,英国《金融时报》发长文分析称,在美国与中国围绕贸易、科技、地...