• 当前位置: 首 页 > 教育百科 > 学历/技能 > 正文

    MySQL 主从同步(读写分离)

    :2023年09月26日
    小虎哥的技术博客

    Spring Cloud 使用MySQL主从同步实现读写分离,当主数据库写操作时,从数据库会实时读取并执行二进制日志中的操作,保证与主数据库数据的一致性。查看binlog信息可以查看二进制日志文件的文件名和偏移量...

    Spring Cloud 微服务系列文章,点击上方合集↑

    1. 开头

    在生产环境中,为了应对大量的读写请求并减轻数据库的负载压力,常常会使用MySQL主从同步来实现读写分离的架构。通过这种架构,主数据库负责处理写操作,而从数据库则专注于处理读操作,达到了在提高性能的同时保证了数据的高可用性。

    主从同步的实现原理主要依赖于MySQL的二进制日志binlog功能。当在主数据库上进行写操作时,MySQL会将这些操作记录下来并保存为二进制文件。从数据库会持续监测主数据库上的二进制日志,实时读取并执行这些日志中的操作,从而保持与主数据库的数据一致性。

    2. 主数据库(master)

    2.1 my.cnf配置文件

    [mysqld]

    server-id=1

    log-bin=mysql-bin

    binlog-ignore-db=information_schema

    binlog-ignore-db=mysql

    binlog-ignore-db=performance_schema

    binlog-ignore-db=sys

    character_set_server=utf8mb4

    • server-id 配置数据库的id,主数据库配置为1

    • log-bin=mysql-bin开启二进制记录

    • binlog-ignore-db 配置不需要同步的数据库

    2.2 查看binlog信息

    SHOW MASTER STATUS命令用于查看MySQL主服务器当前正在使用的二进制日志文件的文件名和偏移量信息。

    mysql -uroot -p

    show master status

    • binlog文件名File mysql-bin.000003 和偏移量Position 188记一下,后面slave需要用。

    3. 从数据库(slave)

    3.1 my.cnf配置文件

    [mysqld]

    server-id=2

    read_only=1

    • server-id 配置数据库的id,从数据库配置为2

    • read_only=1 只读模式

    3.2 配置同步参数

    进入mysql命令控制台

    mysql -uroot -p

    CHANGE MASTER TO MASTER_HOST='192.168.31.163',\

    MASTER_PORT=3312,\

    MASTER_USER='root',\

    MASTER_PASSWORD='123456',\

    MASTER_LOG_FILE='mysql-bin.000003',\

    MASTER_LOG_POS=188

    3.3 开启主从同步

    在从服务器上执行以下命令,启动主从同步:

    START SLAVE;

    可以使用以下命令检查主从复制的状态:

    SHOW SLAVE STATUS\G

    • 查看输出中Slave_IO_Running和Slave_SQL_Running的值。如果这些状态为yes,则表示主从同步已成功建立。

    用Navicat等数据库工具去测试一下,master更新数据立马被同步到slave。

    4. 结尾

    本文我们学习了如何配置和管理MySQL主从同步,实现了在生产环境中的读写分离和高可用性。实际情况下:写数据库只有一个,读数据库会有多个,是一主多从的架构。

    djEvZjRjLXF1dHNyY3k3NmNJcV9Jb3NmdGdqbzFQS2tBa0Vqd01Kc0ViZDBrSnQ4RmI4SUI5R0JuQUV6b1RScDN5dmRFbHdGR1E5MkFfc2ZQaTl6aUc4OWxfNl9ya2oxaXk1bVZqR01XNzhoSjQ9.jpg

    Spring Cloud 微服务系列 完整的代码在仓库的sourcecode/spring-cloud-demo目录下。

    gitee(推荐):https://gitee.com/cunzaizhe/xiaohuge-blog

    github:https://github.com/tigerleeli/xiaohuge-blog

    关注微信公众号:“小虎哥的技术博客”,让我们一起成为更优秀的程序员!

    原文来源:https://mp.weixin.qq.com/s/NNPHqE5SDu1aVfe9m4TZTw

    [编辑:王振袢 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: Spring Cloud 服务 系列 文章
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证