mysql8.0主从配置

Posted 码酱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql8.0主从配置相关的知识,希望对你有一定的参考价值。

一个系统往往最后的瓶颈就是数据库,所以现在出了分布式数据库的概念,但是部署分布式数据库对硬件和技术的成本要求更高。所以还是很多公司采用数据库主从和读写分离的技术来平摊数据的压力。数据的读写分离有MYCAT,SHARDINGJDBC等。我们先来看看mysql 的主从配置吧。

环境: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'@'%';
3,查看用户和远程主机连接设置
show databases;use mysql;show tables;select host,user from user;

mysql8.0主从配置

4,查看主数据库在主从关系中的状态

show master status## 查看主数据库在主从关系中的状态

mysql8.0主从配置

mysql8.0主从配置

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主从配置的主要内容,如果未能解决你的问题,请参考以下文章

mysql8.0主从复制配置(超详细)

MySQL8主从配置

Mysql8.0 主从复制

Mysql 8主从复制配置图解

实现MySQL8.0.25集群主从复制

mysql配置主从配置遇到的坑