mysql8.0主从配置
Posted 码酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql8.0主从配置相关的知识,希望对你有一定的参考价值。
环境:2台centos7虚拟机,上面装了mysql8.0,我这里用到的版本是mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz。(可以先装一台,再克隆一台,注意修改mysql的UUIDs,UUIDs在/var/lib/mysql/auto.cnf。也可以使用show variables like 'datadir';命令查看)
centos7-001 ip 192.168.1.12 主master
centos7-002 ip 192.168.1.8 从slave
主从数据库的基本原理大概就是从数据库通过监听主数据库的sql日志,如果主有变化,从数据库会由IO线程把主数据的log脚本,通过二进制流同步到本地然后通过sql线程执行。所以一般也不会影响到主数据库的性能。(下面画了个简图)
1,修改主数据库的mysql配置文件,vim /etc/my.cnf 增加
server-id=1 给定一个值(一般认为主的<从)
log-bin=master-log # 日志名称 启用日志功能
## 配置完成之后保存
# service mysqld restart
2,主数据库创建同步的账号给从数据库使用
$ mysql -u root -p 进入主数据库
create user 'repl' identified by '123456'; ## 创建同步账号和密码
ALTER USER 'repl'@'%' IDENTIFIED BY '123456';
flush privileges;
GRANT replication slave ON *.* TO 'repl'@'%'; ## 赋予相关权限
GRANT ALL privileges ON *.* TO 'repl'@'%';
show databases;
use mysql;
show tables;
select host,user from user;
4,查看主数据库在主从关系中的状态
show master status; ## 查看主数据库在主从关系中的状态
5,修改从数据库的mysql配置文件,vim /etc/my.cnf 增加
server-id=2 给定一个值(一般认为主的<从)
log-bin=slave-log # 日志名称 启用日志功能
## 配置完成之后保存
# service mysqld restart
6,在从数据库的中配置出master的信息
CHANGE MASTER TO MASTER_HOST='192.168.1.12',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='master-log.000003',MASTER_LOG_POS=156;
7,开启slave,并查看状态
start slave;
show slave statusG;
只要看到没错误,说明配置成功主从关系;
8,验证主从关系
主从服务器都重新启动,在主数据库新建数据库,新建表,添加数据,观察从数据库的状态...
主库
create database www; ## 创建数据库:
use www;
create table info(num int); ## 新建表
show tables;
insert into info values(666);## 添加数据
select * from info;
从库
use www;
show tables;
select * from info;
9,如果没有配置成功,可以从以下几个方面查找问题
防火墙关闭了吗(修改防火墙配置,放行端口)?
repl这个用户可以登录主MySQL吗?
server-id=1 server-id=2 这个添加了吗?
看看slave的status信息是否跟主的master status一样!
以上是关于mysql8.0主从配置的主要内容,如果未能解决你的问题,请参考以下文章