• Windows下Mysql主从配置


    Windows下MySQL的主从配置

    准备

    主master:127.0.0.1:53306

    从slave:127.0.0.1:53307

    版本:mysql-5.7.31

    前置

    • 在主库生成一个用来进行主从同步的账号

      GRANT REPLICATION SLAVE ON *.* to 'test'@'127.0.0.1' identified by '123456';
      flush privileges;
      

      在这里就是生成的一个test的用户,密码为123456

    配置

    1. 配置主库:

      1. 修改主库的配置文件my.ini

        [mysqld]
        #主库的server_id
        server-id=1
        #开启二进制日志
        log-bin=mysql-bin
        #需要同步的库,可以有多个,但不能写成 testdb,testdb1形式
        binlog-do-db=testdb
        #binlog-do-db=testdb1
        #不需要同步的数据库,与binlog-do-db二选一即可
        #binlog-ignore-db=mysql
        #binlog-ignore-db=testdb2
        #--------------------------
        ###基础配置
        ##skip-grant-tables=1
        port = 53306
        basedir=D:mysql-5.7.31
        datadir=D:mysql-5.7.31data
        max_connections=200
        character-set-server=utf8
        default-storage-engine=INNODB
        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
        [mysql]
        default-character-set=utf8
        

        这里有个问题要注意的就是server-id这些主从的配置需要放在最前面,否则会报错

      2. 重启mysql服务

        net stop mysql53306		  	//停止主库mysql服务
        net start mysql53306		//开启主库mysql服务
        
      3. 查询主服务器的日志名和当前的偏移量

        show master status
        +------------------+----------+--------------+------------------+-------------------+
        | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
        +------------------+----------+--------------+------------------+-------------------+
        | mysql-bin.000002 |      154 |              |                  |                   |
        +------------------+----------+--------------+------------------+-------------------+
        
    2. 配置从库

      1. 修改从库的配置文件my.ini

        [mysqld]
        #从库的server-id一般是以从库最后一个ip的数字来定,这里只是不同端口号,所以我用2
        server_id=2
        #开启二进制文件
        log-bin=mysql-bin
        #------------------------------------
        ##基础配置
        ##skip-grant-tables=1
        port = 53307
        basedir=D:mysql-5.7.31-1
        datadir=D:mysql-5.7.31-1data
        max_connections=200
        character-set-server=utf8
        default-storage-engine=INNODB
        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
        [mysql]
        default-character-set=utf8
        
      2. 与主库建立关联关系

        change master to 
        	master_host='127.0.0.1', 
        	master_port=53306, 
        	master_user='test',
        	master_password='123456', 
        	master_log_file='mysql-bin.000002',
            master_log_pos=154;
        
      3. 启动从库的进程

        mysql> start slave;
        Query OK, 0 rows affected (0.09 sec)
        
      4. 查看从库的状态

        mysql> show slave status G;
        *************************** 1. row ***************************
                       Slave_IO_State: Waiting for master to send event
                          Master_Host: 127.0.0.1
                          Master_User: test
                          Master_Port: 53306
                        Connect_Retry: 60
                      Master_Log_File: mysql-bin.000002
                  Read_Master_Log_Pos: 154
                       Relay_Log_File: admin-PC-relay-bin.000002
                        Relay_Log_Pos: 320
                Relay_Master_Log_File: mysql-bin.000002
                     Slave_IO_Running: Yes
                    Slave_SQL_Running: Yes
                      Replicate_Do_DB:
                  Replicate_Ignore_DB:
                   Replicate_Do_Table:
               Replicate_Ignore_Table:
              Replicate_Wild_Do_Table:
          Replicate_Wild_Ignore_Table:
                           Last_Errno: 0
                           Last_Error:
                         Skip_Counter: 0
                  Exec_Master_Log_Pos: 154
                      Relay_Log_Space: 530
                      Until_Condition: None
                       Until_Log_File:
                        Until_Log_Pos: 0
                   Master_SSL_Allowed: No
                   Master_SSL_CA_File:
                   Master_SSL_CA_Path:
                      Master_SSL_Cert:
                    Master_SSL_Cipher:
                       Master_SSL_Key:
                Seconds_Behind_Master: 0
        Master_SSL_Verify_Server_Cert: No
                        Last_IO_Errno: 0
                        Last_IO_Error:
                       Last_SQL_Errno: 0
                       Last_SQL_Error:
          Replicate_Ignore_Server_Ids:
                     Master_Server_Id: 1
                          Master_UUID: 254a65d6-139e-11eb-8ca7-f0761c0a8ffb
                     Master_Info_File: D:mysql-5.7.31-1datamaster.info
                            SQL_Delay: 0
                  SQL_Remaining_Delay: NULL
              Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
                   Master_Retry_Count: 86400
                          Master_Bind:
              Last_IO_Error_Timestamp:
             Last_SQL_Error_Timestamp:
                       Master_SSL_Crl:
                   Master_SSL_Crlpath:
                   Retrieved_Gtid_Set:
                    Executed_Gtid_Set:
                        Auto_Position: 0
                 Replicate_Rewrite_DB:
                         Channel_Name:
                   Master_TLS_Version:
        1 row in set (0.00 sec)
        
        ERROR:
        No query specified
        

        Slave_IO_Running: YesSlave_SQL_Running: Yes当2个都为yes的时候,即代表主从同步配置已经完成。

      出现的问题记录

      • 未将server-id等主从配置放置最前面

        出现Undefined variable server-id

      • 在与主库建立连接的之后,后面出现错误,比如slave_io_running:no 或者 slave_sql_runing:no,就需要重置连接

        mysql > stop slave;		//停止slave服务
        mysql > reset slave;	//重置slave
        
        ###主库操作
        mysql > flush logs;		//重新生成mmysql-bin.000003,文件名数字往后面加1
        mysql > show master status;	//重新查看主库的状态
        
        ###从库--重新建立连接
        mysql > change master to 
        	master_host='127.0.0.1', 
        	master_port=53306, 
        	master_user='test',
        	master_password='123456', 
        	master_log_file='mysql-bin.000003',
            master_log_pos=154;
        
    想生活,不想谋生
  • 相关阅读:
    使用Selector改变TextView的字体颜色textColor的方法
    ViewPager中Fragment切换过程不被销毁的方法
    TextView属性android:ellipsize="marquee"不生效的解决办法
    Android中用TextView显示大量文字的方法
    Android基础学习第三篇—Intent的用法
    Android Studio中Button等控件的Text中字符串默认大写的解决方法
    Android Studio一些常用快捷键及快捷键冲突解决
    Android基础学习第二篇—Activity
    Android基础学习第一篇—Project目录结构
    MVC5 A claim of type 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier' or 'http://schemas.microsoft.com/accesscontrolservice/2
  • 原文地址:https://www.cnblogs.com/Daneil/p/13861088.html
Copyright © 2020-2023  润新知