• MySQL主从数据库配置


    使用工具

    MySQL数据版本:5.6.36-log、
    两台云服务器(Linux系统)

    首先,需要在Linux系统下安装MySQL,具体步骤可以参考这里,并且确保两台主机可以相互访问,可以直接ping一下。

    配置Master

    • Linux环境下,MySQL的配置文件在/ect/my.cnf,直接打开并编辑该文件:vim /etc/my.cnf
    • [mysqld]下输入配置
    log-bin=mysql-bin
    server-id=2
    binlog-ignore-db=information_schema
    binlog-ignore-db=mysql
    binlog-do-db=rwtest
    

    这里的server-id用于标识唯一的数据库,这里设置为2在设从库需要设置为其他值

    binlog-ignore-db:表示同步的时候ignore的数据库
    binlog-do-db:指定需要同步的数据库

    • 重启MySQLservice mysqld restart
    • 登录MySQL并对访问用户进行授权:Slave机器需要File权限和REPLICATION SLAVE权限,当然也可以授予全部权限。
    grant file on *.* to 'root'@'%' identified by 'your password';
    
    grant replication slave on *.* to 'root'@'%' identified by 'your password';
    
    flush privileges;
    
    or
    
    grant all privileges on *.* to 'root'@'%' identified by 'your password';
    
    flush privileges;
    
    • 完成后,可以查看下Master的状态:show master status
    mysql> show master status;
    +------------------+----------+--------------+----------------------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                 | Executed_Gtid_Set |
    +------------------+----------+--------------+----------------------------------+-------------------+
    | mysql-bin.000001 |     2272 | rwtest       | information_schema,mysql |                   |
    +------------------+----------+--------------+----------------------------------+-------------------+
    1 row in set (0.03 sec)
    

    这里的FilePositionSlave中都要用到,Binlog_Do_DB指需要同步的数据库,Binlog_Ignore_DB指不需要同步的数据库,就是刚才配置的值。

    配置Slave

    • 同样在[mysqld]下对配置文件进行编写
    log-bin=mysql-bin
    server-id=3
    binlog-ignore-db=information_schema
    binlog-ignore-db=mysql
    replicate-do-db=rwtest
    replicate-ignore-db=mysql
    log-slave-updates
    slave-skip-errors=all
    slave-net-timeout=60
    
    • 配置完毕后同样重启一下MySQL,并进入设置其对应的Master
    mysql> stop slave;  #关闭Slave
    mysql> change master to master_host='Master主机IP',master_user='刚才授权的用户',master_password='your password',master_log_file='mysql-bin.000001', master_log_pos=2272;
    
    mysql> start slave;  #开启Slave
    

    master_log_filemaster_log_pos都是Master的状态值。必须对应

    • 登录slave的数据库,查看slave的状态:show slave status G
    Slave_IO_State: Waiting for master to send event
                      Master_Host: 你的Master主机IP
                      Master_User: root
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000001
              Read_Master_Log_Pos: 2272
                   Relay_Log_File: izwz9fcvpu481xh55cegx0z-relay-bin.000002
                    Relay_Log_Pos: 1339
            Relay_Master_Log_File: mysql-bin.000001
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                  Replicate_Do_DB: rwtest
              Replicate_Ignore_DB: mysql
               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: 2272
                  Relay_Log_Space: 1530
                  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: 2
                      Master_UUID: de20814f-2fb8-11e7-8f61-5254002b91a1
                 Master_Info_File: /var/lib/mysql/master.info
                        SQL_Delay: 0
              SQL_Remaining_Delay: NULL
          Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
               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
    1 row in set (0.03 sec)
    

    如果状态中含有没有报Error,则表示配置成功了。

    接下来你通过可视化工具连接两个数据库,在主库中进行增删改操作,从库中也会有相应的操作,而在从库中进行此类操作对主库无效。

  • 相关阅读:
    欧拉代码005
    欧拉计划003
    欧拉计划004
    欧拉计划006
    欧拉计划002
    LINUXS3C2440SJA1000驱动程序笔记
    WPF实现窗体内容分割
    InotifyPropertyChanged接口实现简单数据绑定
    C#的6种常用集合类大比拼
    WPF获取窗体或控件句柄
  • 原文地址:https://www.cnblogs.com/yuanmiemie/p/8982701.html
Copyright © 2020-2023  润新知