zoukankan      html  css  js  c++  java
  • MySQL主从库快速搭建

    MySQL主从数据库配置

    今天给我FastAPI的新项目做读写分离,记录一下mysql的配置过程

    具体原理请参考https://blog.csdn.net/qq_40378034/article/details/91125768

    我这个项目逻辑是,优先级高的写和读操作使用主库,后台管理和优先级没那么高的操作用从库读。

    首先你需要准备两个相同配置的mysql服务器,在主数据库下选定你想要做主从复制的库,自己用服务器搭或者用阿里云和腾讯云的第三方好像都可以

    下面开始配置

    master

    1. 创建salve用户

      mysql> grant replication slave on *.* to 'slave账户名'@'xx.xx.xx.xxx' identified by 'slave账户密码';
      mysql> flush privileges;
      

      创建好后,可以在从数据库访问,看设置是否成功

      [root@从数据库 ~]# mysql -hxx.xx.xx.xxx -uslave -p你的密码
      

      连接上了表示成功了

    2. 修改配置文件,Linux一般在 /etc/my.cnf

      [mysqld]
      server-id = 1        #唯一id
      log-bin=mysql-bin          #其中这两行是本来就有的,可以不用动,添加下面两行即可.指定日志文件
      binlog-do-db = test     #记录日志的数据库
      binlog-ignore-db = mysql   #不记录日志的数据库
      

      保存并退出

    3. 重启mysql,再进mysql看看

      [root@主数据库 ~]# service mysqld restart
      ..
      mysql> show master status; 
      

      这里可以看到刚刚设置要做主从复制的数据库,生成的日志文件,头两个参数一会要在从数据库上用到

      到这里,如果有表,可以先锁表防止数据不同步,完事再解开

    slave

    1. 修改my.cnf配置

      [mysqld]
      server-id = 2 # 与主数据库不一样的整数即可
      log-bin=mysql-bin
      replicate-do-db = test
      replicate-ignore-db = mysql,information_schema,performance_schema
      
    2. 重启mysql服务

    3. 用change mster 语句指定同步位置

      mysql>stop slave;  # 必须先停止slave线程,否则会设置不成功
      mysql>change master to
      >master_host='主数据库地址',master_user='slave账号',master_password='密码',
      > master_log_file=' mysql-bin.000001 ',master_log_pos=2562;
      # 后面两个是主数据库的两个参数
      
    4. 重启slave

      mysql>stop slave;
      mysql>reset slave;
      mysql>start slave;
      
    5. 查看从库状态

      show slave statusG
      

      参数很多,只要框起来这两行是Yes就表示成功了

    现在尝试在主库中新建表或插入数据,测试是否正常

    问题解决

    如果玩着玩着发现Slave_SQL_Running变成No了,可以这样解决

    stop slave; 
    
    set global sql_slave_skip_counter =1;
    
    start slave; 
    # 之后再用mysql> show slave statusG
    
  • 相关阅读:
    数据库——表操作(5)
    数据库——存储引擎(4)
    数据库——库操作(3)
    数据库——初始mysql语句(2)
    数据库——初识数据库(1)
    并发编程——协程(5)
    并发编程——IO模型(6)
    并发编程——多线程(4)
    并发编程——多进程——multiprocessing开启进程的方式及其属性(3)
    并发编程——多进程——理论(2)
  • 原文地址:https://www.cnblogs.com/telecasterfanclub/p/13537896.html
Copyright © 2011-2022 走看看