1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > maxscale mysql 主从_MariaDB主从配置与MaxScale实现MySQL读写分离

maxscale mysql 主从_MariaDB主从配置与MaxScale实现MySQL读写分离

时间:2018-12-28 09:22:48

相关推荐

maxscale mysql 主从_MariaDB主从配置与MaxScale实现MySQL读写分离

文章目录

[隐藏]

一、MaxScale插件

二、MaxScale安装配置

1、MariaDB主从配置

2、MaxScale配置

MaxScale由MariaDB开发,MaxScale是插件式结构,允许用户开发适合自己的插件。

一、MaxScale插件

认证插件

提供了登录认证功能,MaxScale 会读取并缓存数据库中 user 表中的信息,当有连接进来时,先从缓存信息中进行验证,如果没有此用户,会从后端数据库中更新信息,再次进行验证

协议插件

包括客户端连接协议,和连接数据库的协议

路由插件

决定如何把客户端的请求转发给后端数据库服务器,读写分离和负载均衡的功能就是由这个模块实现的

监控插件

对各个数据库服务器进行监控,例如发现某个数据库服务器响应很慢,那么就不向其转发请求了

日志和过滤插件

提供简单的数据库防火墙功能,可以对SQL进行过滤和容错

二、MaxScale安装配置

1、MariaDB主从配置

主服务器

mysqld新增如下配置 vi /etc/f.d/f [mysqld] #集群配置 - 主服务器 server-id=40 # binlog-do-db = testdb //只记录testdb库变化,多个库用‘,’分隔 # binlog-ignore-db=mysql //忽略mysql库变化,多个库用‘,’分隔

从服务器

mysqld新增如下配置 vi /etc/f.d/f [mysqld] #集群配置 - 从服务器 server-id=126 # binlog-do-db = testdb //只记录testdb库变化,多个库用‘,’分隔 binlog-ignore-db=mysql

主从服务器服务重启

systemctl restart mariadb.service

主服务器备份sql并导入从服务器

主服务器创建Replication账户

create user 'lbh48'@'%' identified by '81hbl'; GRANT REPLICATION SLAVE ON *.* TO lbh48@从服务器ip IDENTIFIED BY '81hbl'; FLUSH PRIVILEGES;

查看主服务器最新binlog日志文件名

SHOW MASTER STATUS; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000006 | 811 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)

设置从服务器为主服务器的从库并启动从服务器主从复制

change master to master_host='主服务器ip',master_user='lbh48',master_password='81hbl',master_port=10336,master_log_file='mysql-bin.000006',master_log_pos=811; start slave; show slave statusG

设置从服务器为只读模式

#登陆mysql查看只读状态 SHOW global variables like 'read%'; #编辑配置文件设置只读状态 [mysqld] ... read_only=1 ... #重启从服务器mysql服务 systemctl restart mariadb.service

2、MaxScale配置

下载安装MaxScale

yum install gnutls libaio.x86_64 libaio-devel.x86_64 novacom-server.x86_64 libedit -y wget /MaxScale/2.2.0/centos/7server/x86_64/maxscale-2.2.0-1.centos.7.x86_64.rpm rpm -ivh maxscale-2.2.0-1.centos.7.x86_64.rpm

MariaDB主服务器创建监控与路由用户

#监控用户 create user scalemon@'%' identified by "密码"; grant replication slave, replication client on *.* to scalemon@'%'; #路由用户 create user maxscale@'%' identified by "密码";

MaxScale服务器修改配置

vi /etc/f [maxscale] threads=auto log_info=1 logdir=/tmp/ [server1] type=server address=主MariaDB服务器 port=10336 protocol=MySQLBackend [server2] type=server address=从MariaDB服务器 port=10336 protocol=MySQLBackend [MySQL Monitor] type=monitor module=mysqlmon servers=server1,server2 user=scalemon passwd=监控用户密码 monitor_interval=10000 # 确保所有slave挂掉后maxscale可正常识别master detect_stale_master=true [Read-Write Service] type=service router=readwritesplit servers=server1,server2 user=maxscale passwd=路由用户密码 max_slave_connections=100% #保证会话的一致性 use_sql_variables_in=master #允许root登录 enable_root_user=1 #允许从超出主的同步时间,超出则不路由 max_slave_replication_lag=3600 [Read-Only Service] type=service router=readconnroute servers=server1,server2 user=maxscale passwd=监控用户密码 router_options=slave #允许root用户登录执行 enable_root_user=1 #主从权重 weightby=serv_weight

启动服务并查看监听端口

maxscale --config=/etc/f netstat -ntelp

MaxScale管理器

#执行以下命令 maxadmin list servers #状态如下 Servers. -------------------+-----------------+-------+-------------+-------------------- Server | Address | Port | Connections | Status -------------------+-----------------+-------+-------------+-------------------- server1 | 主服务器ip | 10336 | 0 | Master, Running server2 | 从服务器ip | 10336 | 0 | Slave, Running -------------------+-----------------+-------+-------------+--------------------

至此,完成MaxScale中间件实现MySQL读写分离。

原文出处:javadoge -> /article/mariadb_master-slave_configuration_and_maxscale_database_proxy.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。