MySQL8.0 mha gtid主从同步搭建步骤
MySQL8.0 mha gtid主从同步搭建步骤
1.二进制安装
0)、修改主机名,配置hosts
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.17.0.35 node1
172.17.0.29 node2
172.17.0.56 node3
1)、创建操作系统用户:
groupadd mysql
useradd -g mysql mysql
2)、解压二进制包,建立软链接
cd /usr/local
tar xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
ln -s mysql-8.0.25-linux-glibc2.12-x86_64 mysql
3)、修改配置文件my.cnf
主:172.17.0.35
[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
port=3306
user=mysql
log_timestamps=system
default_authentication_plugin = mysql_native_password
log-bin=mysql-bin
server-id=663306
gtid-mode=on
enforce-gtid-consistency=1
从1:172.17.0.29
[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
port=3308
user=mysql
log_timestamps=system
default_authentication_plugin = mysql_native_password
log-bin=mysql-bin
server-id=663306
gtid-mode=on
enforce-gtid-consistency=1
从2:172.17.0.56
[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
port=3307
user=mysql
log_timestamps=system
default_authentication_plugin = mysql_native_password
log-bin=mysql-bin
server-id=883306
gtid-mode=on
enforce-gtid-consistency=1
4)、创建数据目录,并修改其属主、属组。
mkdir -p /usr/local/mysql/data
chown mysql.mysql /usr/local/mysql/data
4.1)、配置互信,每台都要做
ssh-keygen -t rsa
ssh-copy-id 172.17.0.35
ssh-copy-id 172.17.0.29
ssh-copy-id 172.17.0.56
4.3、关闭防火墙以及selinux
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
vim /etc/selinux/config
SELINUX=disabled
setenforce 0
5)、初始化实例:
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize
6)、启动实例
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
7)、登录实例(使用初始化过程中生成的随机密码)
grep ‘temporary password’ mysqld.err
8)、配置mysql环境变量
echo “PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH” >> /etc/profile
echo “export PATH” >> /etc/profile
source /etc/profile
9)、修改root用户密码
mysql -uroot -p’>H0VQ;ZEm:FK’;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
create user root@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
10)、创建同步用户repl以及赋权
create user ‘repl’@’%’ identified with mysql_native_password by ‘123456’;
GRANT REPLICATION SLAVE ON . TO ‘repl’@’%’;
11)、创建用户mha以及赋权
create user ‘mha’@’%’ identified with mysql_native_password by ‘123456’;
grant all privileges on . to ‘mha’@’%’;
flush privileges;
12)、验证用户远程登录是否成功
mysql -urepl -p123456 -h172.17.0.35 -P 3306
13)、检查同步用户权限
show grants for repl@’%’\G
14)、搭建MySQL8.0gtid主从同步
主:172.17.0.35
mysql> show master status \G;
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 156
Binlog_Do_DB: