Mysql 双主部署

1.下载安装包

mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

2.安装环境

两个节点互为主备

节点1 :10.87.134.74

节点1 :10.87.134.75

3.安装过程

1.卸载 mariadb

rpm -qa mariadb

rpm -e -nodeps 上一个命令查询的maria安装包名称

2.安装

tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

 

在两台机器上分别执行以下命令

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.26-1.el7.x86_64.rpm

安装后启动进程 systemctl start mysqld

3.修改配置

编辑节点1的 /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
user=mysql
port = 3306
socket= /var/lib/mysql/mysql.sock
log-bin=mysql-bin
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-port=3306
report-host=10.87.134.74
#replicate-same-server-id #主要用于同时写的情况
server_id = 1      #从写 server_id = 2
log-slave-updates
slave-skip-errors=all
auto_increment_increment=2
auto_increment_offset=1

编辑节点2的 /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
user=mysql
port = 3306
socket= /var/lib/mysql/mysql.sock
log-bin=mysql-bin
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-port=3306
report-host=10.87.134.75
#replicate-same-server-id #主要用于同时写的情况
server_id =2
log-slave-updates
slave-skip-errors=all
auto_increment_increment=2
auto_increment_offset=2

4.修改root密码,创建复制用户

修改my.cnf 增加配置 skip_grant_tables

重启mysql服务

systemctl reatart mysqld

免密码登录 mysql控制台

mysql -uroot -p

修改用户密码

update user set authentication_string=password('Root_2019') where user='root' ;

修改后,注释skip_grant_tables ,重启服务,使用新的密码登录。

在两个节点创建复制用户:

create user 'repl'@'%' identified by 'Repl_2019'; 

在节点1执行

grant replication slave on *.* to 'repl'@'10.87.134.75' identified by 'Repl_2019';

在节点2执行

grant replication slave on *.* to 'repl'@'10.87.134.74' identified by 'Repl_2019';

5.配置主从复制

在节点1执行命令

show master status\G;

 

mysql> show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000002
Position: 1565
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: 5000e310-a711-11e9-918f-a2da0b499cdb:1-4
1 row in set (0.00 sec)

 

在节点2执行命令

show master status\G;

 

*************************** 1. row ***************************
File: mysql-bin.000005
Position: 1585
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set: 3cbb0ab6-a714-11e9-aaf1-92570cfa00a8:1-7,
5000e310-a711-11e9-918f-a2da0b499cdb:5-7
1 row in set (0.00 sec)

 

在节点1执行命令:

change master to master_host='10.87.134.75',master_user='repl',
master_password='Repl_2019',master_log_file='mysql-bin.000005',
master_log_pos=1585;
start slave;

在节点2执行命令

change master to master_host='10.87.134.74',master_user='repl',
master_password='Repl_2019',master_log_file='mysql-bin.000002',
master_log_pos=1565;
start slave;

在两台机器上分别执行命令

show slave status\G;

查看两边的Slave_IO_Running和Slave_SQL_Running的状态值,都为yes则配置完成。

我们可以在节点1创建一个数据库

create database demo1;

在节点2查询数据库demo1 被自动创建。

 

posted @ 2020-06-03 11:47  DarJeely  阅读(387)  评论(0)    收藏  举报