zoukankan      html  css  js  c++  java
  • CentOS 7下的 Mysql 主从配置

    最近在玩mysql主从配置,在此记录一下

    一、前言

      1、安装两个虚拟机(CentOS 7)。iP分别是192.168.47.131 和192.168.47.133.其中192.168.47.133作为主数据库,192.168.47.131作为从数据库

      2、在线安装Mysql数据库。具体安装方法请参考:http://www.cnblogs.com/jerrylz/p/5645224.html

      3、在主从数据库中创建 testdb 数据库。(作为同步的数据库)

    二、具体步骤

      1、主数据库(master)配置

        (1)在Master MySQL上创建一个用户‘test’,并允许其他Slave服务器可以通过远程访问Master,通过该用户读取二进制日志,实现数据同步。

    mysql>create user test; //创建新用户
    //test用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.47.%,这个配置是指明test用户所在服务器,这里%是通配符,表示192.168.47.0-192.168.47.255的Server都可以以test用户登陆主服务器。当然你也可以指定固定Ip。
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'test'@'192.168.47.%' IDENTIFIED BY 'mysql';

        (2)修改Master MySQL的配置文件 my.cnf

    [root@bogon local]# vim /etc/my.cnf
    //在my.cnf 的 [mysqld]添加以下内容
    server_id =1 
    log-bin=mysql-bin
    binlog-do-db=testdb      #允许复制的数据库名称,一行代表一个数据库
    binlog-ignore-db=mysql #不复制的数据库

        (3)重启数据库,查看。

    [root@bogon local]# service mysqld restart
    
    //进入数据库
    show master status;

        结果如下:

    +------------------+----------+--------------+------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000001 | 699 | testdb | mysql | |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)

      看到file和position,记录下来,后面需要用到。分别是 mysql-bin.000001699

      2、从数据库(slave)配置

        (1)修改MySQL的配置文件 my.cnf

    [root@bogon local]# vim /etc/my.cnf
    //在my.cnf 的 [mysqld]添加以下内容
    server_id=2
    log-bin=mysql-bin
    replicate-do-db=testdb
    replicate-ignore-db=mysql

        (2)重启数据库 命令:service mysqld restart。登录数据库。

    mysql> stop slave;  #关闭slave同步进程
    mysql> change master to master_host='192.168.47.133',master_user='test',master_password='mysql',master_log_file='mysql-bin.000001',master_log_pos=699;
    mysql> start slave; #启动slave同步
    mysql> show slave status; #查看状态

        注意slave_io_running:yesslave_sql_running:yes 说明能正常同步了。

      3、测试。

        (1)在主服务器中 testdb 创建 t_user 表,并插入一条数据。

    CREATE TABLE t_user(
        id INT PRIMARY KEY AUTO_INCREMENT,
        NAME VARCHAR(50),
        age INT
    )
    
    INSERT INTO t_user (NAME,age) VALUES ('test',21);

        (2)在从服务器中的 testdb 查看是否存在 t_user 表,并且是否有相应的数据。

    SELECT * FROM t_user;

        从数据库中存在 t_user 表 ,并且有相应的数据。说明mysql主从配置已经成功了。

  • 相关阅读:
    dubbo 学习
    JSTL 实现 为Select赋多个值
    Spring MVC 单元测试Demo
    IDEA git commit push revert
    高并发处理
    Redis Expire TTL命令
    Redis 原子操作INCR
    Redis 安装
    慢日志查询
    angularJs 处理多选框(checkbox)
  • 原文地址:https://www.cnblogs.com/jerrylz/p/5646741.html
Copyright © 2011-2022 走看看