ubuntu系统MySQL8.0主从复制,开启GTID模式
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;