美文网首页
mysql 安装及主主同步

mysql 安装及主主同步

作者: zhengaoly | 来源:发表于2020-11-02 17:30 被阅读0次

    MySQL双主配置(使用GTID模式)

    实际是主从配置的扩展,例如有两台机器a1,a2,主从模式为a1(M)->a2(S),双主模式就是a1->a2,然后a2->a1

    这样,当任意一台挂掉的时候,其中一台可以完全负担起读和写的任务。

    说明

    1. 两台机器 | 10.16.7.62 | 10.16.1.215 |
    2. 两台机器安装MySQL

    配置主服务器

    配置主服务器my.ini

    #GTID:
    #服务器id
    server_id=62              
    #开启gtid模式  
    gtid_mode=on                 
    #强制gtid一致性,开启后对于特定create table不被支持
    enforce_gtid_consistency=on  
    
    #binlog
    log_bin=master-binlog
    log-slave-updates=1    
    #强烈建议,其他格式可能造成数据不一致
    binlog_format=row            
    
    #relay log
    skip_slave_start=1  
        
    # MySQL系统库的数据不需要同步 我们这里写了3个  更加保险
    # 同步数据时忽略一下数据库 但是必须在使用use db的情况下才会忽略;如果没有使用use db 比如create user  数据还是会同步的
    replicate-ignore-db=information_schema
    replicate-ignore-db=mysql
    replicate-ignore-db=performance_schema
    replicate-ignore-db=sys
    # 使用通配符忽略MySQL系统库的表  这样在create user时也不会进行同步了
    replicate_wild_ignore_table=information_schema.%
    replicate_wild_ignore_table=mysql.%
    replicate_wild_ignore_table=performance_schema.%
    replicate_wild_ignore_table=sys.%
    # MySQL系统库的日志不计入binlog 这样更加保险了
    binlog-ignore-db=information_schema
    binlog-ignore-db=mysql
    binlog-ignore-db=performance_schema
    binlog-ignore-db=sys   
    

    安装mysql服务(主)

    在mysql/bin目录下启动cmd,执行
        mysqld --install mysql5.6
    显示如下信息:
        Service successfully installed.
    启动mysql服务:
        net start mysql5.6
     启动成功
        
     首次登陆:(5.6没有密码)
     mysql -uroot    
        
        
     #如果已经安装过,可能提示服务已存在
      使用如下命令卸载:
     mysqld –remove
    

    修改密码

    修改密码的方法:
     %表示允许任何主机登陆
    1. 5.6以前(创建修改用户)
    CREATE user 'test'@'%' IDENTIFIED by 'hisense';
    修改密码
    update user set password=password("新密码") where user="test";
    如下:
    mysql> update user set password=password("新密码") where user="root";
    mysql> flush privileges;
    mysql> quit
    
    2. 5.6以后(创建,修改用户)
    CREATE user 'test'@'%' IDENTIFIED by 'hisense';
    修改密码
    ALTER USER 'test'@'%' IDENTIFIED by 'hisense123';
    如下:
    mysql> alter user "root"@"localhost" identified by "新密码";  --方法1
    mysql> update user set authentication_string=password("新密码") where user="root";  -- 方法2
    mysql> flush privileges;
    mysql> quit
    

    账号授权

    %代表任意主机
    对USER账号授权
    GRANT ALL ON *.*(数据库.表) TO 'USER'@'%';
    如:修改root账号可以在任意主机登陆
        grant all on *.* to 'root'@'%' identified by 'hisense';
    

    修改密码后登陆

    mysql -uroot -p
    输入:hisense
    登陆成功
    
    

    主节点创建rep用户供从节点登陆使用

    **创建主节点用户供从节点拉取数据用(62->215)

    create user 'rep_master'@'%' identified by 'hisense';
    grant replication slave on *.* to 'rep_master'@'%';
    flush privileges;
    # 查看MySQL主节点的状态
    SHOW MASTER STATUS;
    

    配置从服务器

    配置从服务器my.ini

    #GTID:
    #服务器id
    server_id=215              
    #开启gtid模式  
    gtid_mode=on                 
    #强制gtid一致性,开启后对于特定create table不被支持
    enforce_gtid_consistency=on  
    
    #binlog
    log_bin=slave-binlog
    log-slave-updates=1    
    #强烈建议,其他格式可能造成数据不一致
    binlog_format=row            
    
    #relay log
    skip_slave_start=1  
        
    # MySQL系统库的数据不需要同步 我们这里写了3个  更加保险
    # 同步数据时忽略一下数据库 但是必须在使用use db的情况下才会忽略;如果没有使用use db 比如create user  数据还是会同步的
    replicate-ignore-db=information_schema
    replicate-ignore-db=mysql
    replicate-ignore-db=performance_schema
    replicate-ignore-db=sys
    # 使用通配符忽略MySQL系统库的表  这样在create user时也不会进行同步了
    replicate_wild_ignore_table=information_schema.%
    replicate_wild_ignore_table=mysql.%
    replicate_wild_ignore_table=performance_schema.%
    replicate_wild_ignore_table=sys.%
    # MySQL系统库的日志不计入binlog 这样更加保险了
    binlog-ignore-db=information_schema
    binlog-ignore-db=mysql
    binlog-ignore-db=performance_schema
    binlog-ignore-db=sys   
    

    安装mysql服务(从)

    同主

    修改用户名密码

    账号登陆

    同主

    创建从节点rep用户供主节点登陆使用

    (62做从节点从215拉数据的账号)

    create user 'rep_slave'@'%' identified by 'hisense';
    grant replication slave on *.* to 'rep_slave'@'%';
    flush privileges;
    # 查看MySQL主节点的状态
    SHOW MASTER STATUS;
    

    修改从节点指向master

    #更改从节点指向master节点
    CHANGE MASTER TO  
    MASTER_HOST='10.16.7.62',    
    MASTER_USER='rep_master',    
    MASTER_PASSWORD='hisense',    
    MASTER_PORT=3306,    
    MASTER_AUTO_POSITION = 1;
    #启动slave进程
    start slave
        
    #显示slave状态
    show slave status \G
    

    修改主节点指向slave

    #更改主节点指向slave节点
    CHANGE MASTER TO  
    MASTER_HOST='10.16.1.215',    
    MASTER_USER='rep_slave',    
    MASTER_PASSWORD='hisense',    
    MASTER_PORT=3306,    
    MASTER_AUTO_POSITION = 1;
    #启动slave进程
    start slave
        
    #显示slave状态
    show slave status \G
    

    双主至此配置完成,其实就是先配置a->b,在配置b->a

    注意,每次重启mysql服务以后,需要重新执行start slave命令

    相关文章

      网友评论

          本文标题:mysql 安装及主主同步

          本文链接:https://www.haomeiwen.com/subject/dlbmvktx.html