1、主机规划

两台主机,一主两从
192.168.0.51        主
192.168.0.52        从

2、/etc/mysql/mysql.conf.d/mysqld.cnf关键配置

# 服务器ID需要唯一
server-id		= 1
log_bin			= /var/log/mysql/mysql-bin.log

#参数用于排除自带的数据库。  
binlog-ignore-db = mysql 
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema

#只读属性(主库设置为0,从库设置为1)
read_only = 1

#开启gtid模块
gtid-mode=on
#开启强制gtid一致性,
enforce-gtid-consistency=on 
# 必须开启(新版已经默认开启了)
log-slave-updates=1

3、/etc/mysql/mysql.conf.d/mysqld.cnf其他配置

# 修改数据路径
datadir	= /data/mysql

# 允许外部访问
bind-address		= 0.0.0.0
mysqlx-bind-address	= 0.0.0.0

4、/etc/apparmor.d/usr.sbin.mysqld配置(修改路径需要)

# Allow data dir access
 /var/lib/mysql/ r,
 /var/lib/mysql/** rwk,

改为

# Allow data dir access
  /data/mysql/ r,
  /data/mysql/** rwk,

mysql 原本就有部分配置,参考上面的内容进行修改。没有找到文件,可以看一下/etc/mysql/my.cnf或者/etc/my.cnf

5、重启apparmor服务

service apparmor restart

6、启动mysql服务器

# 重启mysql服务器
service mysql restart

# 初始化mysql
mysqld --initialize

# /var/log/mysql/error.log 在这里查看密码
# 登陆mysql
mysql -u root-p

# 修改密码(新版mysql必须修改密码才能使用)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

7、主服务器新建同步账户

# 新建账户
create user repl@'192.168.0.%' identified with mysql_native_password by '123456';

# 授权
grant replication slave on *.* to repl@'192.168.0.%';

8、从服务器配置同步

-- 建立同步
change master to
master_host='192.168.0.51',
master_user='repl',
master_password='123456' ,
MASTER_AUTO_POSITION=1;

-- 启动同步
start slave;

-- 查看状态
show slave status\G

9、root账户远程访问

-- 建立账户
CREATE USER 'root'@'%' IDENTIFIED BY 'password';

-- 授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;