mysql 安装及主主同步

2020-11-02  本文已影响0人  zhengaoly

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命令

上一篇 下一篇

猜你喜欢

热点阅读