mysql高可用(1)—— windows配置主从复制

windows配置mysql主从复制
随着业务的发展,用户越来越多,访问量越来越大,需要解决读取效 率低的问题:mysql主从复制,读写分离,可以解决此问题,主库负责写入数据,从库负责读取数据

一:准备环境:
1:两台服务器或单机windows

2: mysql安装软件
mysql5.7 x64,其他版本也可以,这里以单机为例,多台服务器类同

二:单机配置mysql主从复制步骤:
1:配置主库
2:配置从库
3: 验证和测试

三:实验步骤
windows7 + mysql5.7

(一):配置主库
1: 配置mysql服务并建测试库test
mysql安装后,配置系统mysql服务

	C:\soft\db\mysql-5.7.10-winx64\bin\mysqld install mysql --defaults-file=C:/soft/db/mysql-5.7.10-winx64/my.ini 
	
	drop database test;
	create database test;
 2:停主库
    net stop mysql

 3:配置my.ini
    [mysql]
	# 设置mysql客户端默认字符集
	default-character-set=utf8mb4 
    [mysqld]
	#设置3306端口
	port = 3306 
	# 设置mysql的安装目录
	basedir=C:/soft/db/mysql-5.7.10-winx64
	# 设置mysql数据库的数据的存放目录
	datadir=C:/soft/db/mysql-5.7.10-winx64/data
	# 允许最大连接数
	max_connections=200
	# 服务端使用的字符集默认为8比特编码的latin1字符集
	character-set-server=utf8mb4
	# 创建新表时将使用的默认存储引擎
	default-storage-engine=INNODB
	#=======主从复制配置(主库)============
	#主库和从库需要不一致,唯一的ID编号 1-32,手动设定
	server_id=1   
	#二进制文件存放路径,存放在根目录data   
	log-bin=mysql-bin  
	#需要复制的库,多个库用逗号分隔,如果不配置所有库参与复制
	binlog-do-db=test
	#不需要复制的库
	#binlog-ignore-db=mysql
	#=======主从复制配置============ 
	
 4:启动主库 
    net start mysql
  
 5: 建用户授权
	用户用于从库同步主库的数据
    grant replication slave,reload,super on *.* to 'myslave'@'localhost' identified by 'myslave';
    myslave分别表示用户名、密码
	
 6:刷新权限
    flush privileges
 
 7: 显示主库状态
    记录File和Position,后面有用

(二):配置从库
1: 配置从库服务及建测试库(同主库)
复制主库,放到其他路径下,
如从库和主库在一台机器上,则端口需要不一样(my.ini)
D:\soft\db\mysql2\bin\mysqld --defaults-file=D:/soft/db/mysql2/my.ini mysql2

	drop database test;
	create database test;
 2:停服务		
    net stop mysql2 #mysql2是服务名
 
 3:配置从库
    [mysql]
	# 设置mysql客户端默认字符集
	default-character-set=utf8mb4 
	[mysqld]
	#设置3306端口
	port = 3307 
	# 设置mysql的安装目录
	basedir=D:/soft/db/mysql2
	# 设置mysql数据库的数据的存放目录
	datadir=D:/soft/db/mysql2/data
	# 允许最大连接数
	max_connections=200
	# 服务端使用的字符集默认为8比特编码的latin1字符集
	character-set-server=utf8mb4
	# 创建新表时将使用的默认存储引擎
	default-storage-engine=INNODB
	#=======主从复制配置(从库)============
	#主库和从库需要不一致,唯一的ID编号 1-32,手动设定
	server_id=2    
	#需要复制的库,多个库用逗号分隔,如果不配置所有库参与复制
	replicate-do-db=test
	#=======主从复制配置============ 

 4: 重启从库
    net start mysql2 
   
 5: 从库执行
    从库连接到主库同步master_log_file和master_log_pos分别是之前记录的File,Position
    change master to master_host='127.0.0.1',master_user='myslave',master_password='myslave',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=154;
 
 6: 重启同步服务
    stop slave; 执行start slave;

(三):验证和测试
验证前需要确保主库和从库都存在相同库
1: 主库执行
create table t1(tid int,tname varchar(30));
insert into t1 values(1,‘t1’);
insert into t1 values(2,‘t2’);
insert into t1 values(3,‘t3’);
commit;

 2:从库验证

四:实验经验
1:windows单机安装多个mysql,需要端口不一致

2:同步过程中,可能报如下错误
   Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
   因为从库是主库拷贝,停从库,删除\data\auto.cof文件,重启则可以了

3:单机多mysql,命令行登陆,最好加上端口号,否则可能一直登陆同一mysql
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值