MySQL双主配置

在自己的两台虚拟机192.168.152.130,192.168.152.132进行配置

部署环境:centos7.8、mysql5.7.31,两台服务器的3306端口可以互相telnet通

安装可以参考另一篇文章:linux下jdk+mysql安装部署+nginx -

1.修改配置文件

在主机130上,修改mysql的配置文件 #vim /etc/my.cnf

添加如下配置

server-id=1   #服务器id (主从必须不一样)

log-bin=mysql-bin   #打开日志(主机需要打开)

binlog-do-db=db1  #要给从机同步的库

binlog-ignore-db=mysql   #不给从机同步的库(多个写多行)

binlog-ignore-db=information_schema

expire_logs_days=7    #自动清理 7 天前的log文件,可根据需要修改

在主机132上,修改mysql的配置文件 #vim /etc/my.cnf

添加如下配置

server-id=2   #服务器id (主从必须不一样)

log-bin=mysql-bin   #打开日志(主机需要打开)

binlog-do-db=db1  #要给从机同步的库

binlog-ignore-db=mysql   #不给从机同步的库(多个写多行)

binlog-ignore-db=information_schema

expire_logs_days=7    #自动清理 7 天前的log文件,可根据需要修改

修改完成后,重启两台MySQL服务 #systemctl restart mysqld.service 

2、重启完成后 , 登录MySQL

两台MySQL中都建立备份账号:(这密码我瞎写的,可以自己百度生成随机密码)

mysql>grant replication slave on *.* to 'backup'@'192.168.152.132' identified by 'EeuiRE8' ;

mysql>grant replication slave on *.* to 'backup'@'192.168.152.130' identified by 'EeuiRE8' ;

可以输入以下命令查看用户信息

mysql> select user,authentication_string,host from user ;

3、配置主从(130 -->   132)

查看第一台机器(130)的状态 :

mysql> show master status \G;

然后在第二台机器(132)上配置第一台机器(130)为主机。

mysql> stop slave ;

mysql> change master to master_host='192.168.152.130', master_user='backup', master_password='EeuiRE8', master_log_file='mysql-bin.000002',master_log_pos=964;

mysql> start slave ;

然后查看主机状态

mysql>show  slave  status \G;

当Slave_IO_Running: Yes   Slave_SQL_Running: Yes 都为yes表示同步成功

4.配置主从(132 -->   130)

相同的操作,查看132的主机状态 , 在130上配置。

mysql>stop slave ;

mysql>change master to master_host='192.168.152.132', master_user='backup', master_password='EeuiRE8', master_log_file='mysql-bin.000001',master_log_pos=964;

mysql>start slave ;

然后查看主机状态

mysql>show  slave  status  \G; 同样,当Slave_IO_Running: Yes   Slave_SQL_Running: Yes 都为yes表示同步成功

双主测试: 在130中创建数据库, 在132查看数据库生成了; 在132的库中插入表 ,130中有数据表了 。

其他命令:

初始化bin-log日志       mysql> reset master;

创建测试库db1

mysql>create database db1 charset utf8;

创建表及插入数据测试

create table user(

    `userid` int(4) primary key not null auto_increment,

    `username` varchar(16) not null,

    `userpassword` varchar(32) not null

  );

INSERT INTO user (username,userpassword) VALUES('ccc','cccc');

MySQL+Keepalived可参考

你可能感兴趣的:(MySQL双主配置)