mysql主从复制与读写分离


— mysql主从复制与读写分离

​ 通过配置mysql的主从复制,并基于mysql中间件Mycat实现数据库的读写分离

主从复制

1.准备工作

创建一个虚拟机后,克隆虚拟机。

并将克隆出来主机的1.MAC地址 2,hostname 3.IP地址 4.UUID 5.Mysql中的server-uuid 修改

得到:

名称 虚拟机名称 ip 内存(G) 处理器
Master ubuntu master 192.168.10.128 8.6 4
Slave ubuntu slave1 192.168.10.130 2 2
Mycat中间件 ubuntu Mycat 192.168.10.131 5.3G 4

其他参数:
虚拟机Ubuntu 20.04
Mysql版本:8.0.32

2.【MASTER】

在Master 虚拟机名称:ubuntu master ip :192.168.10.128中 :

修改MASTER配置文件 mysqld.cnf sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

#加入配置

MASTER配置

#保存后重启MySQL
sudo service mysql restart

3.【SLAVE】

在另一台虚拟机中 Slave 虚拟机名称:ubuntu slave1 ip:192.168.10.130中:

修改SLAVE配置文件 mysqld.cnf sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

#加入配置

Slave配置

#保存后重启MySQL
sudo service mysql restart

4.[MASTER]创建账户并授权

CREATE USER 'slave1'@'%' IDENTIFIED BY 'shxshx111';

GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';

ALTER USER 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY 'shxshx111';

flush privileges;

随后查看MASTER状态。并记录下File和Position的值,这个可能会变化。

Master状态

show master status;

5.[SLAVE]配置需要的复制主机

CHANGE MASTER TO MASTER_HOST ='192.168.10.132',MASTER_USER='slave1',MASTER_PASSWORD='shxshx111',MASTER_LOG_FILE='binlog.001153',MASTER_LOG_POS=157;

//启动从机SLAVE
start slave;

//查看SLAVE状态
show slave status\G;

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

表示同步成功。

Slave状态

测试:

与你设置的binlog-do-db要一致才能实现同步

create database login_master_slave;

create table test(id int,name varchar(1024));

insert into test(id,name) values(1,'Tom');

6.配置过程中出现的BUG:

1、mycat_partition size : 3 > table datanode size : 2

在autopartition-long.txt发现了问题autopartition-long.txt的文件如下三行注释掉

2、耗时一天的bug 为什么会出现 java.sql.SQLException: null, message from server: “Host xxx’ is not allowed to connect to this MySQL server异常

原因:

每台服务器都要设置 root 的权限为 % 原先是 localhost;

查看权限,在mysql登录的状态下: select user,host,plugin from mysql.user; 查看

更改权限 update user set host=’%’ where user=’root’;

刷新权限 flush privileges;

Mycat读写分离

1.修改mycat的 schema.xml

Mycat配置文件

2.修改mycat的 server.xml

Mycat配置文件

3.启动mycat

mycat start

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 351134995@qq.com

×

喜欢就点赞,疼爱就打赏