这里是MYSQL通天路
如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位点赞评论收藏??
文章目录
- 为什么要主从同步?
- 主从同步的原理
- MYSQL数据库进行主从同步
-
- 创建两个MYSQL数据库
- 初始化,安装主机数据库
-
- **安装好数据库后进入主机:**
- 配置从机
- 测试主从同步
为什么要主从同步? 1、读写分离
- 主从同步分为一个主机多个从机,可以设置主从机权限。主机可以读写,从机只能读。主机对数据的操作会复制到从机,主机的数据和从机的一致。这样就可以实现读写分离,读写分离可以缓解服务器压力。互联网的应用往往是“读多写少”的需求,采用读写分离的方式,可以实现更高的并发访问。
- 我们通过主从复制将主库上的数据复制到了从库上,相当于是一种热备份机制,也就是在主库正常运行下进行备份,不会影响到服务。
- 具有高可用性。我刚才讲的数据备份实际上是一种冗余的机制,通过这种冗余的方式可以换取数据库的高可用性,也就是当服务器出现故障或者宕机的情况下,可以切换到从服务器上,让从服务器充当主服务器,保证服务的正常运行。
- 主机每执行一个操作会在二进制日志文件中记录。
- 从机每隔一段时间就会对主机的日志文件进行探测,如果发生改变,从机就会发送一个IO请求,复制主机中的日志文件进行同步操作,这样从机就可以和主机同步。
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/421f4155ec43454190636c5db4776181.png)
文章图片
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/42ffbf354d0f426db15276fcd459dc16.jpg)
文章图片
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/f9df90eb6f954c0cba40a664e27e5d8b.jpg)
文章图片
主机3301的配置文件如下:
[mysqld]
# 主机端口号
port=3308
# 服务器标识,每个服务器不能一样
server_id=111
# 开启日志文件
log_bin=binlog
# 普通用户只能读 OFF是关闭状态
read_only=off
# 超级用户只能读 OFF是关闭状态
super_read_only=off
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/6f3f800c97584b0d8c19dfada3ce1658.jpg)
文章图片
从机3302的配置文件如下:
[mysqld]
# 从机端口号
port=3309
# 服务器标识
server_id=2
# 开启日志文件
log_bin=binlog
# 普通用户只能读 on是开启状态
read_only=on
# 超级用户只能读 on是开启状态
super_read_only=on
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/c4831fda39bb4ff7aaf7677363f1d654.jpg)
文章图片
初始化,安装主机数据库 初始化和安装方法和平时配置数据库一样,不会的看这篇博客:
https://blog.csdn.net/weixin_50843918/article/details/122888392?spm=1001.2014.3001.5501
安装好数据库后进入主机:
进入主机数据库,没有密码。
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/55cca4a827d14055b29b64e0af046912.png)
文章图片
建立同步账号,并授权
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/808cbe558eeb4f348c187abad067502f.jpg)
文章图片
查看主库master
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/e46269cfbe2a454ba083d64a01db7f9a.jpg)
文章图片
记住查询出的结果,后面要用
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/c62825f7069443979671feeb538c81aa.png)
文章图片
配置从机
进入数据库
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/f6936798a73740498c4d70765198f30c.png)
文章图片
复制主机的二进制日志操作,其中 source_user是主机创建的同步账户账号,source_password是账号密码,source_port主机端口号,source_log_file之前查看主机master时File的信息,source_log_pos是Position的信息。
mysql>change replication source to source_host='127.0.0.1', source_user='repl', source_password='repl', source_port=3308,source_log_file='binlog.000006', source_log_pos=336;
启动同步
mysql>start replica;
查看IO线程和sql线程是否开启
mysql>show slave status \G
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/fa5105252efe4f1e9eb4bf859d3e9a80.jpg)
文章图片
测试主从同步 主机当前的全部数据库:
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/dd8565417c1d4e12818f03355387d5fc.png)
文章图片
从机当前的全部数据库:
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/c60326bdc5c84d139e1f13f8f65440e4.png)
文章图片
主机建立一个新数据库xxx:
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/f468f130c2ea4354b494e4af90b2d9f2.png)
文章图片
从机查看数据库:
![mysql|MYSQL数据库主从同步设置](https://img.it610.com/image/info8/6ed60e4ed6b14944acd5b46a97722ee4.png)
文章图片
操作同步,完成
推荐阅读
- 数据库|数据库(基础SQL)
- mysql|【MYSQL数据库】事件(定时器)和触发器
- java|【JAVA通天路】JDBC连接MYSQL数据库
- JAVA高并发程序设计|多线程关于无锁的线程是否安全问题
- mysql|MYSQL数据库中表的进阶玩法——表分区
- JAVA高并发程序设计|六道热门多线程面试题,你学废了吗?
- JAVA高并发程序设计|带你深度刨析多线程的同步控制
- SQL数据库|MySQL数据库(基础)
- mysql|MYSQL数据库复杂查询练习题(难度适中)