mysql8.0主从复制

mysql主从复制作用:数据库备份、读写分离、高可用、集群
原理:二进制sql执行文件(binlog)。主机有写的操作修改了数据。会把二进制sql日志文件给从机同步数据

主机:有读(select)和写(insert、update、delete、create)的权限
备(从)机:有读的权限    (使用mycat来禁止从机人为作写操作)

mysql主从复制步骤
主服务器配置:
vi /etc/my.cnf 新增以下内容
server_id=177 ###服务器id
log-bin=mysql-bin ###开启日志文件
binlog-ignore-db=mysql #不参与主从的数据库名,不参与主从复制的数据库名mysql

binlog-do-db = test #需要备份数据,多个请另起一行设置binlog_do_db=需要同步的数据库名称,不写全部都备份

重启mysql服务
systemctl restart mysqld
主服务器给从服务器账号授权
进入mysql
mysql -u root -p
密码
GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'Qq123!@#'; 一般不用root帐号 随意账号 给从服务器对应
注意:在mysql8.0不能直接用上面的。要先创建再授权
create user 'mysync'@'%' identified WITH mysql_native_password by 'Qq123!@#'; (创建用户)
GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' ; (用户授权)
flush privileges; 刷新
登录主服务器的mysql,查询master的状态
show master status;

 

image.png

 

File如果结果为null,则主服务器my.cnf没有配置好.

从服务器操作:
将安装好mysql的服务器再克隆一台。要改mac地址
1、因为克隆的mysql会有相同的uuid 要修改mysql的uuid使之不相同
vi /var/lib/mysql/auto.cnf 修改uuid,长度要相同
没修好的话会报

image.png


如果不是克隆的虚拟机,忽略上面的修改操作
接下来继续从服务器的操作
vi /etc/my.cnf 新增以下内容
server_id=178 ###服务器id
log-bin=mysql-bin ###开启日志文件

 

重启mysql服务
systemctl restart mysqld

进入mysql
mysql -u root -p
密码

stop slave
master_host表示主服务器ip
change master to master_host='192.168.219.128',master_user='mysync',master_password='Qq123!@#',
master_log_file='mysql-bin.000002',master_log_pos=343;

start slave

检查从服务器复制功能状态
SHOW SLAVE STATUS \G
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
完成!

 

image.png

读写分离(分库):主从两台数据库服务器。主数据库能写,从数据库只能读
mysql本身没有实现读写分离的功能,需要用到mycat中间件

开一台服务器作mycat 数据库中间件配置,能实现反向代理,数据库服务器通过添加mycat账号来进行权限分配。
使用mycat账号和mycat当前服务器的ip地址进行登陆,就能实现读写分离,主要与主数据库关联
在mycat数据库上做操作,从数据库如果设置了这个数据库的同步,也会进行同步
mycat默认端口号8066

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值