• Linux下Mysql数据库互为主从的配置过程


    配置准备:

    两台机器:A(193.168.10.101)  B(193.168.10.102)

    mysql大版本需要一致,小版本可忽略

    配置过程:

    A(193.168.10.101) 机器配置:

    执行命令:vi /etc/my.cnf后在mysqlid下添加如下内容:

    log-bin=/var/lib/mysql/mysql-bin
    
    server-id=101
    
    auto_increment_offset=1
    auto_increment_increment=2
    
    skip-slave-start
    log-slave-updates=true
    binlog-do-db=db_a
    binlog-do-db=db_b
    binlog-do-db=db_c
    binlog-ignore-db=mysql

    参数说明:

    log-bin=mysql-bin  #开启二进制日志
    
    server-id=101  #2到232–1之间的一个正整数值,唯一,默认是1,建议使用ip的最后一段
    
    auto_increment_offset=1  #自增id起始值为1
    
    auto_increment_increment=2  #自增基数为2,保证id为奇数
    
    skip-slave-start  #手动启动同步服务,避免突然宕机导致的数据日志不同步
    
    log-slave-updates=true  #互为主从必要
    binlog-do-db  #需要复制的数据库
    binlog-ignore-db  #不需要复制的数据库

    保存修改完成之后执行命令service mysqld restart重启mysql数据库:

    service mysqld restart

    给主机B赋予mysql权限

    执行命令:mysql -u用户名-p密码登录mysql数据库后执行以下命令:

    grant all on *.* to 'slave'@193.168.10.102 identified by '123456'; 
    或者  grant replication slave on *.* to 'slave'@193.168.10.102 identified by '123456'; (权限不同)

    给主机B赋予权限,这里@前面的slave是登录名,可以自己定义,最后面的123456是登录密码。

    初始化bin-log日志

    执行mysql命令reset master;清空所有的bin-log日志,然后执行mysql命令show master status;查看最新的bin日志。

    reset master;
    show master status;

     

    上图中的mysql-bin.000001就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机B中使用。

    到此主机A配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待主机B配置完成且设置同步后才可以进行操作。

    B(193.168.10.102) 机器配置:

    执行命令:vi /etc/my.cnf后在mysqlid下添加如下内容:

    log-bin=/var/lib/mysql/mysql-bin
    
    server-id=102
    
    auto_increment_offset=2
    auto_increment_increment=2
    
    skip-slave-start
    log-slave-updates=true

    注意这里的server-id和offset值和A机器上的不同。

    保存修改完成之后执行命令service mysqld restart重启mysql数据库:

    service mysqld restart

    给主机A赋予mysql权限

    执行命令:mysql -u用户名-p密码登录mysql数据库后执行以下命令:

    grant all on *.* to 'slave'@193.168.10.101 identified by '123456'; 

    注意这里是101

    初始化bin-log日志

    执行mysql命令reset master;清空所有的bin-log日志,然后执行mysql命令show master status;查看最新的bin日志。

    reset master;
    show master status;

     

    同步配置:

    在主机A上重新登录mysql后执行:

    change master to master_host='193.168.10.102',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;

    这里的master_host是指主机B的ip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。

    然后开启同步  执行:

    start slave;

    查看是否成功:

    show slave statusG;

    如图所示 表示成功。

    在主机B上重新登录mysql执行:

    change master to master_host='193.168.10.101',master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
    start slave;
    show slave statusG;

    以上互为主从配置完成。可自行在其中一个mysql中创建数据库创建表,然后查看另外一个mysql中是否已经同步。

  • 相关阅读:
    Leetcode 811. Subdomain Visit Count
    Leetcode 70. Climbing Stairs
    Leetcode 509. Fibonacci Number
    Leetcode 771. Jewels and Stones
    Leetcode 217. Contains Duplicate
    MYSQL安装第三步报错
    .net 开发WEB程序
    JDK版本问题
    打开ECLIPSE 报failed to load the jni shared library
    ANSI_NULLS SQL语句
  • 原文地址:https://www.cnblogs.com/blazeZzz/p/10184503.html
Copyright © 2020-2023  润新知