MySQL主从复制实现

本文介绍了MySQL主从复制的优点,包括读写分离、异地备份和增强抗风险能力。阐述了实现原理,即通过二进制日志同步操作。还讲解了Windows上安装多个MySQL的步骤,以及主从复制的设置方法,最后分析了主从复制常见报错及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL主从复制的优点
1.实现读写分离,提高数据库的负载能力
2.实现数据库的异地备份
3.增加数据库的抗风险能力,主库与从库中的数据相同
MySQL主从复制实现原理:MySQL的二进制日志,即a库做什么操作,b库同步执行其操作。

window上安装多个MySQL(可跳过)
1.正常安装MySQL数据库
2.停止第一个MySQL服务
3.复制E:\mysql —>E:\mysql2
4.修改E:\mysql2下的my.ini文件

port=3307  # 数据库端口
	server_id = 2  # 两个数据库的id不能相同
	log-bin=mysql-bin # 二进制文件存放路径(主库配置文件检查是否正确)
	basedir  ="E:\mysql2"
	datadir  ="E:\mysql2\data\"

5.创建新的MySQL服务
管理员身份打开命令行窗口–安装新的MySQL服务
mysqld install MySQL2 --defaults-file=‘E:\mysql2\my.ini’
5.启动服务(控制面板新增加了一个服务)
启动原来的MySQL服务,新增加的MySQL2服务
6.修改注册表
HKEY_LOCAL_MACHINE–>SYSTEM–>CurrentControlSet–>Services
找到刚才创建的MySQL2,将ImagePath修改成如下":
路径+服务名称
E:\mysql2\bin\mysqld MySQL2
安装失败–可能是MySQL版本的问题,具体问题,具体分析

MySQL主从复制设置

在主数据库上给从服务器设置权限:

1.创建用户slave,密码 123456
mysql> create user 'slave'@'192.168.3.20' identified by '123456';
Query OK, 0 rows affected (0.60 sec)
2.分配权限
mysql> grant replication slave on *.* to 'slave'@'192.168.3.20';
Query OK, 0 rows affected (0.59 sec)
3.刷新权限                                                                                                              
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
4.查看master状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      771 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.02 sec)

从库连接主库

1.连接主库
mysql> CHANGE MASTER TO MASTER_HOST='192.168.3.20',MASTER_USER='slave',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=771;
Query OK, 0 rows affected (0.86 sec)
2.开启线程
mysql> start slave;
Query OK, 0 rows affected (0.03 sec)
3.查看状态
mysql> show slave status;

提示:当两者同为yes时,主从复制开始工作
Slave_IO_Running: Yes  # 负责与主机的io通信
Slave_SQL_Running: Yes  # 负责自己的slave MySQL进程

主从复制常见报错
1.Slave_IO_Running:No,
查看从库的日志,发现Error_code: 1593,提示说明主从服务器上的uuid相同(原因是第二数据库是从第一数据库复制过来的-所以参数完全相同)
解决办法:修改主库或者从库中的data文件夹中auto.cnf中的值,不能让他们完全相同

2.Slave_IO_Running:connecting—原因是 File 和 position 发生了变化。
解决办法:在从库上使用新的file和position值重新链接主库即可。

注:修改配置完成后,需要stop slave, start slave 才会生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值