首页 > 系统相关 >ubuntu安装maxscale

ubuntu安装maxscale

时间:2025-01-02 15:19:36浏览次数:1  
标签:info log MaxScale ubuntu maxscale mysql 服务器 安装

一、简介

MaxScale 是 MariaDB 开发的一个数据库智能代理服务,允许根据数据库 SQL 语句将请求转向目标一个到多个服务器,可设定各种复杂程度的转向规则。

MaxScale 设计用于透明的提供数据库的负载均衡和高可用性,同时提供高度可伸缩和灵活的架构,支持不同的协议和路由决策。MaxScale 使用 C 语言开发,利用 Linux 下的异步 I/O 功能。使用 epoll 作为事件驱动框架。

二、下载

官方下载地址:https://mariadb.com/downloads/community/maxscale/

点击maxscale

目前最新版本为:24.02.3-GA

操作系统选择:Ubuntu 22.04 Jammy (64-bit x86)


点击右下角的下载按钮,会得到一个文件maxscale_24.02.3~jammy-1_amd64.deb

 

三、安装

dpkg -i maxscale_24.02.3~jammy-1_amd64.deb

执行之后,安装提示报错,缺少相关依赖。

安装依赖

apt-get install -f

 

安装完成后,启动服务

systemctl restart maxscale

 

四、添加用户授权

根据maxscale.cnf文件配置,在主/从服务器上添加对应的授权用户,因为2台数据库服务器是主从同步结构,只在主数据库服务器添加用户即可,从服务器会自动同步,这里需要授权两个用户,在mysql上创建,一个是监控用户(监控的数据库服务器),一个是路由用户(监控读写分离),这两个用户是用来在maxscale中使用的

 

在mysql主实列中运行以下命令:

监控用户

CREATE USER 'maxscalemon'@'%' IDENTIFIED BY 'abcd@1234';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'maxscalemon'@'%';
FLUSH PRIVILEGES;

 

路由用户

CREATE USER 'maxscalerouter'@'%' IDENTIFIED BY 'abcd@1234';
GRANT SELECT ON mysql.* TO maxscalerouter@"%";
GRANT SHOW DATABASES ON *.* TO 'maxscalerouter'@'%';
FLUSH PRIVILEGES;

  

五、修改主配置文件

由于我们这里只配置读写分离,所以需要删除掉一些配置信息,可以只留下下文定义的内容

maxscale.cnf

[maxscale]
threads=auto
#启用MaxGUI
admin_enabled=1
admin_gui=1
admin_host=0.0.0.0
admin_port=8989
# 如果设置为1,则启用SSL/TLS
admin_secure_gui=0
log_debug=0
log_info=1
#控制日志记录的节流
log_throttling=8,2s,15000ms
 
[master]
type=server
address=mysql-***-001.mysql.database.azure.com
port=3306
protocol=MySQLBackend
 
[slave]
type=server
address=mysql-***-001-replicate.mysql.database.azure.com
port=3306
protocol=MySQLBackend
 
[MySQL-Monitor]
type=monitor
module=mysqlmon
servers=master,slave
user=maxscalemon
password=abcd@1234
monitor_interval=2s
 
[Read-Write-Service]
type=service
router=readwritesplit
servers=master,slave
user=maxscalerouter
password=abcd@1234
 
[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MySQLClient
port=4006

 

列出所有服务器,使用以下命令:

maxctrl list servers

 

六、验证读写分离

这里需要修改参数

log_info=1

 

查看日志

tail -f /var/log/maxscale/maxscale.log

修改一条mysql数据

 


这里可以看到执行了:UPDATE `tm_test` SET `name`='苹果' WHERE (`ID`='2'),指向的服务器是master,也就是主库

 

2024-11-15 17:13:18 info : (5) (Read-Write-Service); > Autocommit: [enabled], trx is [not open], cmd: (0x3) COM_QUERY, plen: 63, type: sql::TYPE_WRITE, stmt: UPDATE `tm_test` SET `name`='苹果' WHERE (`ID`='2')
2024-11-15 17:13:18 info : (5) [readwritesplit] (Read-Write-Service); Route query to primary: master <
2024-11-15 17:13:18 info : (5) [readwritesplit] (Read-Write-Service); Reply complete from 'master' (OK: 0 warnings)

 

验证完成之后,最好把log_info=1给注释掉,否则日志会很大。maxscale没有参数,可以控制日志大小,因此需要操作系统层面来进行日志切割处理。

 

七、web后台页面

访问地址:http://192.168.10.1:8989/
登录信息如下:

用户名:admin

密码:mariadb

登录之后,效果如下:

 点击Current Sessions,可以看到当前mysql会话

 点击Visualization,可以看到拓扑图

 点击Logs Archive,可以查看日志

 

八、疑难问题:

1. java代码里面先更新了数据,再次查询,发现数据没更新,还是之前的数据。

解决办法:

修改java代码,将更新和查询,使用事务模式进行包裹,就可以解决这个问题。

在 MaxScale 的事务模式下,即使没有修改操作,只有读取操作,也可能会被路由到主库
。这是因为 MaxScale 的 readwritesplit 路由器在处理事务时,会将事务中的所有语句路由到同一个服务器上。

需要注意的是,即使在事务中只有读取操作,如果事务中包含了某些特定的 SQL 语句(如存储过程或函数调用),这些语句可能会被路由到主库
。这是因为 MaxScale 的 readwritesplit 路由器可能会将这些语句视为潜在的写操作。

 

标签:info,log,MaxScale,ubuntu,maxscale,mysql,服务器,安装
From: https://www.cnblogs.com/xiao987334176/p/18647821

相关文章

  • k8s安装attu
    官方文档里就这么一句安装attu,但是脚本里的镜像,我们无法访问,我们需要修改自定义的镜像kubectlapply-fhttps://raw.githubusercontent.com/zilliztech/attu/main/attu-k8s-deploy.yaml1.下载yaml文件[root@mastermy_yaml]#cd/root/my_yaml[root@mastermy_yaml]#wgethtt......
  • 关于 Webstorm 2024 安装激活教程以及常见问题(激活至2026,实际上永久,亲测!)
    申明:本教程Webstorm补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版!卸载老版本Webstorm首先,如果小伙伴的电脑上有安装老版本的Webstorm,需要将其彻底卸载掉,如下所示(没有安装则不用管,直接安装即可):TIP:如果你之......
  • Linux mint安装百度云
    deb包下载BCloud作者官网https://github.com/XuShaohua/bcloud-packages链接:https://pan.baidu.com/s/1hskY04G密码:f66d在自己的下载目录下打开终端,输入以下指令sudoapt-finstallsudodpkg-ibcloud_3.9.1_all.deb     补充安装deb包有可能不好使情况......
  • Linux mint的hadoop安装方法
    参考网址http://www.powerxing.com/install-hadoop/1.创建hadoop账户这条命令创建了可以登陆的hadoop用户,并使用/bin/bash作为shell。sudouseradd-mhadoop-s/bin/bash2.接着使用如下命令设置密码,可简单设置为hadoop,按提示输入两次密码:sudopasswdhadoop3.可为h......
  • linux mint安装kafka,及flume与kafka整合
    需要软件jdk1.8(jdk-8u131-linux-x64.rpm)zookeeper(zookeeper-3.4.10.tar.gz)kafka2.11-2.0.0flume1.8.0 把触控板的操作做为输出sudofusuma1>/var/log/script/test1112>&1& 1、jdk就不说了2、zookeeper安装,参考其他bin目录./zkServer.shstart查看状态./zkServ......
  • mysql5.5安装
    回忆一下mysql5.5安装配置方法,整理mysql5.5安装配置教程笔记,分享给大家。MySQL下载地址:http://dev.mysql.com/downloads/installer/1、首先进入的是安装引导界面2、然后进入的是类型选择界面,这里有3个类型:Typical(典型)、Complete(完全)、Custom(自定义)。这里建议 选择“自定......
  • linux安装spark
    1、首先在官网下载http://spark.apache.org/downloads.html,选择与hadoop对应的版本,对应关系为:spark1.6.2--scala2.10;spark2.0.0--scala2.11 http://mirrors.hust.edu.cn/apache/spark/spark-2.2.2/spark-2.2.2-bin-hadoop2.7.tgz在终端中输入wgethttp://d3kbcqa49mib13.cl......
  • linux mint下安装截图工具
    在linux下尝试了多款截图工具,综合下来,觉得shutter是最好用的,推荐大家使用。Shutter是一个强大的截图工具,强大的功能集成到一个直观的简洁界面,应用程序自带多个区域截图(如全屏,选择界面,活动窗口,网站等),方便应用功能,以及有众多插件和上传到Web服务的功能。安装shutter:sudoadd-ap......
  • linux mint安装eclipse
    安装eclipse之前需要先安装配置jdk,参考上面,一、Eclipse的下载与安装1、首先,在Eclipse的官网中下载最新版的LunaSR2http://www.eclipse.org/downloads/packages/release/Luna/SR2(点击打开链接)直接下载最新版的EclipseforJavaEELinux32bit/64bit,Eclipse各个版本其实差别不多,......
  • linux mint安装Idea
    一、前言这一节我们介绍在Linux下如何安装与破解Intellijidea2017。现在有很多公司开发环境都是Linux,所以掌握在Linux环境下使用Idea办公也是咱们必须得掌握的技能。记住我们下载的是Ultimate(旗舰版),不是Community(社区版)。Ultimate(旗舰版)是收费的版本,本文主要是针对这个版......