• mysql 主从复制配置


    (1)数据库复制 replication 的实现原理

    1:主服务器凡运行语句,都产生一个二进制日志 binlog

    2:从服务器不断读取主服务器的binlog

    3:从主服务读取到的binlog,转换为自身可执行的relaylog,

    4:执行relaylog

    大致图解如下:

    (2)实现步骤:

    1:首先确保主服务器打开二进制日志功能.

    这样,主服务器一旦有数据变化,立即产生二进制日志.

    2:从服务器也需要开启二进制日志和relay日志功能.

    这样可以从主服务器读取binlog,并产生relaylog

    3:在主服务器建立一个从服务器的账号,并授予数得上权限.

    4: 指定从服务对应的主服务器,开启从服务器.

    (3)具体步骤如下

    (1)在Linux上新建2个两个mysql服务器,IP分别为192.168.109.121[主]192.168.109.113[从]

    (2)配置主服务器[192.168.109.121]

       1:编辑my.cnf配置: vim  /etc/my.cnf 

       2:添加如下配置[备注:如果以下配置已经开启,则不需要配置]:

            log-bin=mysql-bin  #开启二进制

            binlog_format=mixed  #指定日志格式

            server-id       = 121  #制定一个唯一ID

       3:  重启mysql:  /etc/init.d/mysql start  

       4:  登录mysql:  ./usr/local/msyql/bin/mysql -uroot -p密码

       5:查看master状态:show master status;  #记住File,Position 变量

      +---------------------+----------+------------------+---------------------+

     | File                      | Position | Binlog_Do_DB | Binlog_Ignore_DB |
     +----------------------+----------+------------------+---------------------+
     | mysql-bin.000004 | 1274     |                       |                           |
     +----------------------+----------+------------------+----------------------+

    (3)配置从服务器[192.168.109.113]

      1:编辑my.cnf配置: vim  /etc/my.cnf 

      2:添加如下配置:

           # log-bin=mysql-bin  #开启二进制 [关闭]

           # binlog_format=mixed  #指定日志格式 [关闭]

              relay-log=mysql-relay  #从服务器日志 [开启]

              server-id       = 122  #制定一个唯一ID [开启]

      3:重启mysql:  /etc/init.d/mysql start  

      4:  在主服务器中创建可复制的日志的账号

         (1)grant replication slave ,replication client on *.* to 'repl'@'192.168.%.%' identified by 'repl'  [必须先登录mysql在执行]

         (2)刷新:flush privileges;

      5: 在从服务器通过语句指定要复制的主服务器(注意,可以一主多从,不可一从多主)     

          (1)从服务器配置[必须先登录mysql在执行]
            change master to
            master_host='192.168.109.121' ,
            master_user='repl' ,
            master_password='repl' ,
            master_log_file='mysql-bin.000004' ,
            master_log_pos=1274;

      (2)关闭主和从服务器的防火墙,因为会屏蔽掉3306端口

             service iptables stop

         (3)重启从服务器功能

              start slave 

         (4)查看从服务器是否连接上主服务器

             show slave status G;

            如下所示:      

    Slave_IO_State: Waiting for master to send event  #等待着主服务器
    Master_Host: 192.168.109.121
    Master_User: repl
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000004
    Read_Master_Log_Pos: 1274
    Relay_Log_File: localhost-relay-bin.000002
    Relay_Log_Pos: 351
    Relay_Master_Log_File: mysql-bin.000004
    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: 1274
    Relay_Log_Space: 511
    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: 121

         6:数据测试

           (1)在主服务器新建一个数据库

              create database hgj123 charset utf8;

            (2)在从服务器查看是否存在新建的hgj123数据库

              show databases;

    如果存在表示已经OK拉,如果不存在表示出错了。可能是授权问题或者防火墙问题,请仔细检查。

    常用语句:

    show master status ; 查看master的状态, 尤其是当前的日志及位置

    show slave stattus; 查看slave的状态.

    reset slave ;  重置slave状态.

    start slave ; 启动slave 状态(开始监听msater的变化)

    stop slave; 暂停slave状态;

     -----------------------------------------

    7.安装mysql
    [root@CentOS ~]# yum install mysql mysql-server mysql-devel
    [root@CentOS ~]# service mysqld start
    [root@CentOS ~]# chkconfig --levels 235 mysqld on
    [root@CentOS ~]# mysqladmin -u root password "123456"
    //为root用户设置密码
    [root@CentOS ~]# service mysqld restart
    //重启mysql

  • 相关阅读:
    Luogu P3371 【模板】单源最短路径
    Luogu P1330 封锁阳光大学
    Luogu P2661 信息传递
    Luogu P1514 引水入城
    2017NOIP游记
    Image Processing and Analysis_8_Edge Detection:Edge and line oriented contour detection State of the art ——2011
    Image Processing and Analysis_8_Edge Detection:Learning to Detect Natural Image Boundaries Using Local Brightness, Color, and Texture Cues ——2004
    Image Processing and Analysis_8_Edge Detection:Design of steerable filters for feature detection using canny-like criteria ——2004
    Image Processing and Analysis_8_Edge Detection:Edge Detection Revisited ——2004
    Image Processing and Analysis_8_Edge Detection:Statistical edge detection_ learning and evaluating edge cues——2003
  • 原文地址:https://www.cnblogs.com/hgj123/p/5034652.html
Copyright © 2020-2023  润新知