基于MYSQL5.7的GTID复制、MYSQL的读写分离

案例1、二进制安装MYSQL5.7

 
 
 
 
 
 
 
 
 
 
 
 

 mysql安装教程

案例2、基于MYSQL5.7的GTID(两台主机)

1、 主服务器上

(1)vim  /etc/my.cnf

    [mysqld]

    server-id=17

    log-bin

    gtid_mode=ON

    enforce_gtid_consistency

    datadir=/data/mysql

    socket=/data/mysql/mysql.sock

    log-error=/data/mysql/mysql.log

    pid-file=/data/mysql/mysql.pid

    [client]

    socket=/data/mysql/mysql.sock

(2)service mysqld restart

(3)mysql> grant replication slave on *.* to repluser@'192.168.37.%' identified by 'centos';

2、从服务器上

(1)vim /etc/my.cnf

    [mysqld]

    server-id=27

    gtid_mode=ON

    enforce_gtid_consistency

    datadir=/data/mysql

    socket=/data/mysql/mysql.sock

    log-error=/data/mysql/mysql.log

    pid-file=/data/mysql/mysql.pid

    [client]

    socket=/data/mysql/mysql.sock

(2)service mysqld restart

(3)mysql>CHANGE MASTER TO MASTER_HOST='主服务器',

    MASTER_USER='repluser',

    MASTER_PASSWORD='centos',

    MASTER_PORT=3306,

    MASTER_AUTO_POSITION=1;

(4)mysql>start slave;

 

案例3、MYSQL读写分离(三台主机)

读写分离服务器:192.168.43.101        主服务器:192.168.43.102   从服务器:192.168.43.103

(1)首先实现主从服务器之间的主从复制,从服务器必须加read-only 选项

(2)配置yum安装路径,安装PROXYSQL数据库,检验数据库连接是否正常

 
 
 
 

(3)向ProxySQL中添加MySQL节点,并加载和保存到磁盘中,以下操作不需要use main也可成功

 
 
 
 

(4)添加监控后端节点的用户。ProxySQL通过每个节点的read_only值来自动调整它们是属于读组还是写组

在master上执行

 
 

ProxySQL上配置监控

 
 

 

1、监控模块的指标保存在monitor库的log表中

2、查看监控连接是否正常的 (对connect指标的监控):(如果connect_error的结果为NULL则表示正常)

 
 

3、查看监控心跳信息 (对ping指标的监控):

MySQL> select * from mysql_server_ping_log;

4、查看read_only和replication_lag的监控日志

MySQL> select * from mysql_server_read_only_log;

MySQL> select * from mysql_server_replication_lag_log;

 mysql面试题

(5)设置分组信息需要修改的是main库中的mysql_replication_hostgroups表,该表有3个字段:writer_hostgroup,reader_hostgroup,comment, 指定写组的id为10,读组的id为20

 
 

 

(6)配置发送SQL语句的用户

在master节点上创建访问用户

 
 

在ProxySQL配置,将用户sqluser添加到mysql_users表中, default_hostgroup默认组设置为写组10,当读写分离的路由规则不符合时,会访问默认组的数据库

 
 

 

使用sqluser用户测试是否能路由到默认的10写组实现读、写数据

mysql -usqluser -pmagedu -P6033 -h127.0.0.1 -e 'select @@server_id'

mysql -usqluser -pmagedu -P6033 -h127.0.0.1 -e 'create database testdb'

mysql -usqluser -pmagedu testdb -P6033 -h127.0.0.1 -e 'create table t(id int)'

 mysql索引

(7)在proxysql上配置路由规则,实现读写分离

 
 
 
 
 
 
 



作者:醉斜阳_3ee6
链接:https://www.jianshu.com/p/7ea7262036a1
来源:简书

posted @ 2021-11-16 09:01  DB哥  阅读(42)  评论(0编辑  收藏  举报