zoukankan      html  css  js  c++  java
  • CentOS6.5配置MYSQL一主多从详解

    一、环境

    1 操作系统 :CentOS 6.5
    2 数据库版本:MySQL 5.6.27
    3 主机A:192.168.1.1 (Master)
    4 从机B:192.168.1.2 (Slave)
    5 从机B:192.168.1.3 (Slave)

     

    二、基本环境配置

    MYSQL是通过3306端口访问的,所以要保证防火墙对3306端口的开启。

     

    三、Master的配置

    1、配置my.cnf

    在Linux环境下MySQL的配置文件的位置是在 /etc/my.cnf ,在该文件下指定Master的配置如下:

    [root@mycentos ~]# vim /etc/my.cnf
    
    server-id               = 1       # 一般用IP的最后一段,这个标识是唯一的
    log-bin                 = mysql-bin
    binlog-ignore-db        = test    # 排除不同步的库
    binlog-ignore-db        = mysql
    binlog-ignore-db        = performance_schema
    binlog-ignore-db        = information_schema
    binlog-do-db            = vertical_analysis    # 选择要同步的库
    binlog_format           = mixed
    expire_logs_days        = 7
    relay-log               = relay-log
    log_slave_updates
    skip-slave-start

     

    说明:

    binlog-ignore-db:表示同步的时候ignore的数据库

    binlog-do-db:指定需要同步的数据库

     

    2、重启mysql

    [root@mycentos ~]# service mysqld restart

     

    3、进入mysql

    [root@mycentos ~]# mysql -u root -p

     

    4、 赋予从库权限帐号

    允许用户在主库上读取日志,赋予192.168.1.2/3也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

    在Master数据库命令行中输入:

    mysql> GRANT FILE ON *.* TO 'slaver'@'%' IDENTIFIED BY '123456';
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'slaver'@'%' IDENTIFIED BY '123456';
    mysql> FLUSH PRIVILEGES

    这里slaver 用户作为同步的时候使用到的用户,可以自己设定。

     

    5、检测授权结果 

    mysql> select * from user where host='%' and user='slaver'G; 
    
    # 如果Repl_slave_priv项为Y,表示授权成功。

     

    6、查看主数据库master状态

    mysql> show master status;
    
    +------------------+----------+-----------------------+---------------------------------------------------+-------------------+
    
    | File             | Position | Binlog_Do_DB          | Binlog_Ignore_DB                                  | Executed_Gtid_Set |
    
    +------------------+----------+-----------------------+---------------------------------------------------+-------------------+
    
    | mysql-bin.000004 |    28125 | vertical_analysis     | performance_schema ,information_schema,test,mysql |                   |
    
    +------------------+----------+-----------------------+---------------------------------------------------+-------------------+
    
    1 row in set (0.00 sec)

    这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。

     

    四、Slave的配置

    1、配置my.cnf

    [root@mycentos ~]# vim /etc/my.cnf
    
    server-id               = 2            # 一般用IP的最后一段,这个标识是唯一的
    log-bin                 = mysql-bin
    binlog_format           = mixed
    expire_logs_days        = 7
    relay-log               = relay-log    # 注意:不同的slave这里也是唯一的
    binlog-ignore-db        = information_schema
    binlog-ignore-db        = performance_schema
    binlog-ignore-db        = mysql
    binlog-ignore-db        = test
    replicate-do-db         = vertical_analysis
    replicate-ignore-db     = mysql
    log_slave_updates
    skip-slave-start
    slave-skip-errors       = all
    slave-net-timeout       = 60

     

    2、配置Slave同步信息

    mysql> stop slave;
    
    mysql> change master to
      master_host='192.168.1.1',
      master_port=3306,
      master_user='slaver',
      master_password='123456',
      master_log_file='mysql-bin.000004',
      master_log_pos=28125;
    
    mysql> start slave;

     

    3、检测从数据库复制功能状态

    mysql> show slave statusG;
    
    # 其中下面两项都必须为yes。
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

     

    五、验证

    在主库上建一张表,看下从库是否同步过来。

     

    附:

    错误1:Slave failed to initialize relay log info structure from the repository

    解决方法:使用reset slave all清空所有的复制信息,然后重置master.info、start slave后复制正常。

     

  • 相关阅读:
    [JavaScript]继续学习DOM事件模型
    [面试]作答整理一些面试题
    [JavaScript]使用jQuery实现无缝轮播
    [JavaScript]使用CSS + jQuery 实现自动轮播图
    [JavaScript]从DOM到jQuery(2)
    [JavaScript]从DOM到jQuery(1)
    [JavaScript]JavaScript中的函数(2)
    [JavaScript]JavaScript中的函数(1)
    [JavaScript]JavaScript中的Array
    React练习 7 :点击div,显示innerHTML
  • 原文地址:https://www.cnblogs.com/hunttown/p/9174437.html
Copyright © 2011-2022 走看看