操作环境:CentOS 7,MySQL 5.7.25
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.25 |
+-----------+
0.本次实验使用两台CentOS7.7,并安装了mysql5.7.25
主服务器:192.168.128.139
从服务器:192.168.128.140
1.主服务器添加解析
#cat >> /etc/hosts <<EOF
>192.168.128.139 mysql-master
>192.168.128.140 mysql-slave
>EOF
2.主服务器清理环境
#systemctl stop mysqld
#rm -rf /var/lib/mysql/*
#rm -rf /var/log/mysql/*
3.主服务器开启GTID
#cat >> /etc/my.cnf <<EOF
>server-id=1
>gtid-mode=on
>enforce-gtid-consisency=1
4.主服务器重启MySQL服务,更改Mysql登录密码
#systemctl restart mysqld
#grep "temporary password" /var/log/mysqld.log | awk 'END{print}'
#mysqladmin -uroot -p'temp_password' password 'new_password'
5.主服务器授权replication用户
>grant replication slave on *.* to 'repl'@'%' identified by 'repl_password';
>flush privileges;
6.从服务器添加解析
#cat >> /etc/hosts <<EOF
>192.168.128.139 mysql-master
>192.168.128.140 mysql-slave
>EOF
7.从服务器测试连接
#mysql -urepl -p'repl_password' -h mysql-master
测试成功后,退出。
8.从服务器清理环境
#systemctl stop mysqld
#rm -rf /var/lib/mysql/*
#rm -rf /var/log/mysql/*
9.从服务器开启GTID
#cat >> /etc/my.cnf <<EOF
>server-id=2
>gtid-mode=on
>enforce-gtid-consisency=1
10.从服务器重启MySQL服务,更改Mysql登录密码
#systemctl restart mysqld
#grep "temporary password" /var/log/mysqld.log | awk 'END{print}'
#mysqladmin -uroot -p'temp_password' password 'new_password'
11.从服务器执行连接信息
>change master to
>master_host='mysql-master',
>master_user=repl',
>master_password='repl_password',
>master_auto_position=1;
>start slave;
12.从服务器查看是否同步成功
>show slave status\G;
看到: Slave_IO_Running:Yes
Slave_SQL_Running:Yes
表示成功