zoukankan      html  css  js  c++  java
  • mysql主从复制

                                mysql主从复制
                                 (超简单)
    怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:
    注意的是:先安装好两个数据库,并且启动好mysql,在修改配置文件,在重新启动数据库。
    1、主从服务器分别作以下操作
      1.1、版本一致
      1.2、初始化表,并在后台启动mysql
      1.3、修改root的密码

    2、修改主服务器master:
       #vi /etc/my.cnf
           [mysqld]
           log-bin=mysql-bin   //[必须]启用二进制日志
           server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

    3、修改从服务器slave:
       #vi /etc/my.cnf
           [mysqld]
           log-bin=mysql-bin   //[不是必须]启用二进制日志
           server-id=226      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

    4、重启两台服务器的mysql
       /etc/init.d/mysql restart

    5、在主服务器上建立帐户并授权slave:
       
       mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456';
         绿色部分表示:表示允许从服务器主服务器复制。
     
    //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226,加强安全。

    6、登录主服务器的mysql,查询master的状态
       mysql>show variables like  '%bin%'; 查看是否开启二进制文件。
         
     
     
        mysql>show master status;
       +------------------+----------+--------------+------------------+
       | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
       +------------------+----------+--------------+------------------+
       | mysql-bin.000004 |      308 |              |                  |
       +------------------+----------+--------------+------------------+
       1 row in set (0.00 sec)
       注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

    7、配置从服务器Slave:
       mysql>change master to
             master_host='192.168.145.222',
             master_port=3306,        #如果端口是默认的,不写此选项也可以。这里不要加引号
                                       会报语法错误。环境是mysql5612报的错误,不知道别的     
                                         版本会不会报错
             master_user='mysync',
             master_password='q123456',
             master_log_file='mysql-bin.000004',
             master_log_pos=308;   //注意不要断开,308数字前后无单引号。

       Mysql>start slave;    //启动从服务器复制功能

    8、检查从服务器复制功能状态:

       mysql> show slave statusG

       *************************** 1. row ***************************

                  Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.2.222  //主服务器地址
                  Master_User: mysync   //授权帐户名,尽量避免使用root
                  Master_Port: 3306    //数据库端口,部分版本没有此行
                  Connect_Retry: 60
                  Master_Log_File: mysql-bin.000004   // I/O线程当前正在读取的主服务器二进制日志文件的名称。
                  Read_Master_Log_Pos: 600     // 在当前的主服务器二进制日志中,I/O线程已经读取的位置,同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
                  Relay_Log_File: ddte-relay-bin.000003 // SQL线程当前正在读取和执行的中继日志文件的名称
                  Relay_Log_Pos: 251  // 在当前的中继日志中,SQL线程已读取和执行的位置。
                  Relay_Master_Log_File: mysql-bin.000004 
                  Slave_IO_Running: Yes    //此状态必须YES
                  Slave_SQL_Running: Yes     //此状态必须YES
                  Seconds_Behind_Master: 0   主从同步延时
                        ......

    注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。

    以上操作过程,主从服务器配置完成。
      
    9、主从服务器测试:

    主服务器Mysql,建立数据库,并在这个库中建表插入一条数据:
     
    10.注意事项:我们的服务器本身mysql是开启的,修改配置文件以后,要重启mysql,5.6以上有时候会失败,是因为mysql还有别的进程存在,我们service mysqld restart 会报错的。所以需要kill掉所有的mysql进程。在重启就可以。
     
     
     
     
     

     
  • 相关阅读:
    Working with macro signatures
    Reset and Clear Recent Items and Frequent Places in Windows 10
    git分支演示
    The current .NET SDK does not support targeting .NET Core 2.1. Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that supports .NET Core 2.1.
    Build website project by roslyn through devenv.com
    Configure environment variables for different tools in jenkins
    NUnit Console Command Line
    Code Coverage and Unit Test in SonarQube
    头脑王者 物理化学生物
    头脑王者 常识,饮食
  • 原文地址:https://www.cnblogs.com/pangbing/p/6534572.html
Copyright © 2011-2022 走看看