zabbix监控mysql

news2024/11/18 20:42:13

一、mysql数据库监控的内容有

mysql的吞吐量
mysql的常规操作(增删改查)
QPS(Questions Per second:)每秒能处理多少次请求数
TPS(Transactions Per Second)每秒查询处理的事务数
mysql库大小和表大小
监控innodb缓冲池的read命中率

mkdir /etc/zabbix/scripts/
cd /etc/zabbix/scripts/
vim mysql.sh
#!/bin/bash
case $1 in
        #mysql吞吐量
        #流量发送
        Bytes_sent)
        mysqladmin extended-status|grep "Bytes_sent"|awk '{print $4}'
        ;;
        #流量接收
        Bytes_received)
        mysqladmin extended-status|grep "Bytes_received"|awk '{print $4}'
        ;;
        #mysql数据库增删改查
        #增
        Com_insert)
        mysqladmin extended-status|grep -w "Com_insert"|awk '{print $4}'
        ;;
        #删
        mysqladmin extended-status|grep Com_delete|sed -n '1p'|awk '{print $4}'
        ;;
        #改
        mysqladmin extended-status|grep Com_update|sed -n '1p'|awk '{print $4}'
        ;;
        #查
        mysqladmin extended-status|grep Com_select|awk '{print $4}'
        ;;
 esac
第二种:
#!/bin/bash

uptime=`mysqladmin status|awk '{print $2}'`

#echo "$uptime"

case $1 in

mysql_slave)#主从状态

mysql -uqq -p123 -e "show slave status\G;"|grep Running | grep Running | awk -F ':' '{print $2}' | wc -l

;;

Byte_sent) #发送量

mysqladmin extended-status|grep Byte|sed -n '2p'|awk '{print $4}'

;;

Byte_received)#接收量

mysqladmin extended-status|grep Bytes_re|awk '{print $4}'

;;

Com_select)#查

mysqladmin extended-status|grep Com_select|awk '{print $4}'

;;

Com_telete)#删

mysqladmin extended-status|grep Com_delete|sed -n '1p'|awk '{print $4}'

;;

Com_insert)#增

mysqladmin extended-status|grep Com_insert|sed -n '1p'|awk '{print $4}'

;;

Com_update)#改

mysqladmin extended-status|grep Com_update|sed -n '1p'|awk '{print $4}'

;;

qps)#每秒请求次数的数量

qu=`mysqladmin status|awk '{print $6}'`

qps=`echo "scal=2;$qu/$uptime"|bc`

echo "$qps"

;;

tps)#每秒处理事务的数量

commit=`mysqladmin extended-status|grep -w Com_commit|awk '{print $4}'`

rollback=`mysqladmin extended-status|grep -w Com_rollback|sed -n '1p'|awk '{print $4}'`

tps_tmp1=$((${commit}+${rollback}))

tps=$(echo "scale=2;${tps_tmp1}/$uptime"|bc)

echo "$tps"

;;

database_size)#库的大小

mysql -e "use information_schema;select round(DATA_LENGTH/1024/1024,2) from tables where TABLE_SCHEMA ='mysql';"|sed -n '9p'

;;

tables_size)#表的大小

mysql -e "use information_schema; select round(DATA_LENGTH/1024/1024,2) from tables where TABLE_SCHEMA='mysql' and TABLE_NAME='user';"|sed -n '2p'

;;

esac
第三种:
#!/bin/bash 
 
# MySQL连接参数 
MYSQL_HOST="your-mysql-host"
MYSQL_USER="your-mysql-user"
MYSQL_PASSWORD="your-mysql-password"
 
# 获取数据库吞吐量 
吞吐量() {
    local qps 
    qps=$(mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p "$MYSQL_PASSWORD" -e "SHOW STATUS LIKE 'Queries'" | tail -n +2 | awk '{print $2}')
    echo "QPS: $qps"
}
 
# 获取数据库TPS 
tps() {
    local tps 
    tps=$(mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p "$MYSQL_PASSWORD" -e "SHOW STATUS LIKE 'Com_commit'" | tail -n +2 | awk '{print $2}')
    echo "TPS: $tps"
}
 
# 获取库大小和表大小 
库表大小() {
    local total_size table_size 
    total_size=$(mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p "$MYSQL_PASSWORD" -e "SELECT SUM(data_length + index_length) / 1024 / 1024 AS Total FROM information_schema.tables WHERE table_schema = 'your-database-name';")
    table_size=$(mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p "$MYSQL_PASSWORD" -e "SELECT table_name, data_length + index_length AS Size FROM information_schema.tables WHERE table_schema = 'your-database-name';")
    echo "Total database size: $total_size MB"
    echo "Table sizes:"
    echo "$table_size"
}
 
# 监控InnoDB缓冲池的read命中率 
缓冲池命中率() {
    local buffer_pool_info 
    buffer_pool_info=$(mysql -h "$MYSQL_HOST" -u "$MYSQL_PASSWORD" -p "$MYSQL_PASSWORD" -e "SHOW ENGINE INNODB STATUS;" | grep "Buffer pool and memory")
    echo "InnoDB Buffer Pool Info: $buffer_pool_info"
}
 
# 执行监控 
吞吐量 
tps 
库表大小 
缓冲池命中率 
1、模板数据配置文件

复制以下内容到/etc/zabbix/zabbix_agentd.d/template_db_mysql.conf中

#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 5.0
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default) 
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user='zbx_monitor'
#password='<password>'
#

UserParameter=mysql.ping[*], mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*], mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*], mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*], mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*], mysql -h"$1" -P"$2" -sN -e "SELECT COALESCE(SUM(DATA_LENGTH + INDEX_LENGTH),0) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*], mysql -h"$1" -P"$2" -sNX -e "show slave status"
2 、查看zabbix_agent配置文件中 Include参数

3 、创建数据库监控用户
mysql -uroot -p你的mysql密码
CREATE USER '监控用户名'@'%' IDENTIFIED BY '监控用户密码'; 
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO '监控用户名'@'%';
4 、创建步骤3登录用户名,密码配置文件
mkdir /var/lib/zabbix

vim /var/lib/zabbix/.my.cnf

# 添加如下文件
[client]
user='监控用户名'
password='监控用户密码'

二、zabbix监控mysql四大性能指标

查询吞吐量  
查询执行性能  
连接情况 
缓冲池使用情况

1、吞吐量
Com_select:select查询语句个数/每秒
Com_insert:insert操作语句个数/每秒
Com-update:update操作语句个数/每秒
Com-delete:delete操作语句个数/每秒
Questions:查询语句总量

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_select 
| Com_select                               | 18484       |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_update
| Com_update                               | 3000        |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_insert
| Com_insert                               | 1054        |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_delete
| Com_delete                               | 198         |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Questions 
| Questions                                | 723868      |

注:
1. Writes = Com_insert + Com_update + Com_delete,如果在监控mysql吞吐量写操作的时候可以将insert
   update、delete数值进行合并。 
2. Questions是反映当前查询数量,设置告警非常必要,查询量的骤降,可能就预示着某个严重的问题。
2、查询性能
Slow_queries:慢查询数量

 mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Slow_queries
| Slow_queries                             | 0           |
3、连接情况
Threads_connected:当前打开的数据库连接数
max_connections:数据库当前的最大连接数

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep -i connect
| Aborted_connects                         | 0           |
| Connections                              | 572         |
| Max_used_connections                     | 4           |
| Ssl_client_connects                      | 0           |
| Ssl_connect_renegotiates                 | 0           |
| Ssl_finished_connects                    | 0           |
| Threads_connected                        | 2           |


检查并设置连接限制

监控客户端连接情况相当重要,因为一旦可用连接耗尽,新的客户端连接就会遭到拒绝。MySQL 默认的连接数限制为 151。

查询最大连接数
方法一:
MariaDB [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+

方法二:
mysql -uread -p123456 -h47.98.97.124 -e "show variables like 'max_connections'"|grep max_connections
max_connections 151

修改连接数
MariaDB [(none)]> set global max_connections = 200;
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 200   |
+-----------------+-------+
1 row in set (0.00 sec)

三、编写一下zabbix客户端的脚本

脚本内容如下:

#!/bin/bash
# 2024年5月21日 13:13:32
# Authoed by pzz
# Used to get the MySQL parameter
CONNECTION1="mysqladmin -uroot -proot status"
CONNECTION2="mysqladmin -uroot -proot extended-status"
if [ $# -ne 1 ];then
        echo "arg error,there should be one arg!"
else
        case $1 in
                uptime)
                        result=`$CONNECTION1 | awk '{print $2}'`
                        ;;
                threads)
                        result=`$CONNECTION1 | awk '{print $4}'`
                        ;;
                slow_queries)
                        result=`$CONNECTION1 | awk '{print $9}'`
                        ;;
                avg_time)
                        result=`$CONNECTION1 | awk '{print $22}'`
                        ;;
                bytes_sent)
                        result=`$CONNECTION2 | grep "Bytes_sent" |awk '{print $4}'`
                        ;;
                *)
                        echo "Usage:$0(uptime|threads|slow_queries|avg_time|bytes_sent)"
        esac
        echo $result
fi

脚本完成后,我们来测试一下脚本的可行性,结果如下:

可以看出,我们编写的脚本工作正常,可以运行并检测MySQL的一些性能参数。然后我们在zabbix server端上测试一下,结果如下:

可以看出,zabbix server端也运行正常。

1、zabbix web端配置

接下来,我们就可以进行zabbix web端的配置了。大致流程如下:
添加模板——添加监控项——将模板添加到主机上——添加图形。
选择配置——主机,点击图形,如下所示:

进入图形页面后,点击右上角的添加图形页面,并填写名称、以及监控项等内容,结果如下:

完成上述添加后,我们点击下方的“添加”就可以把刚才我们的自定义图形添加上去了,添加完成后的页面如下所示:


2、图形查看

最后,我们来查看一下刚才配置的结果。进入监控——图形页面,选择我们要监控的图形,结果如下:

可以看出,我们已经能够通过自定义的监控项来显示图形了,我们的zabbix监控MySQL性能实战成功!
 

四、监控MySQL主从

1、在slave主机上配置脚本
[root@slave script]# cd /etc/zabbix/
[root@slave zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@slave zabbix]# mkdir script
[root@slave zabbix]# cd script/
[root@slave script]# vim mysql_slave_status.sh
[root@slave script]# cat mysql_slave_status.sh 
#!/bin/bash
USER="root"
PASSWD="123"
NAME=$1

function IO {
    Slave_IO_Running=`mysql -u $USER -p$PASSWD -e "show slave status\G;" 2> /dev/null |grep Slave_IO_Running |awk '{print $2}'`
    if [ $Slave_IO_Running == "Connecting" ];then
        echo 0 
    else
        echo 1 
    fi
}

function SQL {
    Slave_SQL_Running=`mysql -u $USER -p$PASSWD -e "show slave status\G;" 2> /dev/null |grep Slave_SQL_Running: |awk '{print $2}'`
if [ $Slave_SQL_Running == "Yes" ];then
echo 0 
    else
        echo 1 
    fi

}

case $NAME in
   io)
       IO
   ;;
   sql)
       SQL
   ;;
   *)
        echo -e "Usage: $0 [io | sql]"
esac
[root@slave script]# chmod +x mysql_slave_status.sh 
[root@slave script]# chown zabbix.zabbix mysql_slave_status.sh 
[root@slave script]# ll
总用量 4
-rwxr-xr-x 1 zabbix zabbix 631 9月   7 16:31 mysql_slave_status.sh
2、编写一个自配置文件,里面指定上面编写的脚本的路径,然后重启服务
[root@slave script]# cd /etc/zabbix/zabbix_agentd.d/
[root@slave zabbix_agentd.d]# ls
[root@slave zabbix_agentd.d]# vim userparameter_mysql_slave.conf
UserParameter=mysql.slave[*],/etc/zabbix/script/mysql_slave_status.sh $1
          自定义数值[*代表可用环境变量执行]       接脚本路径        可变量参数
[root@slave zabbix_agentd.d]# chown -R zabbix.zabbix /etc/zabbix/zabbix_agentd.d/userparameter_mysql_slave.conf 
[root@slave zabbix_agentd.d]# ll
总用量 4
-rw-r--r-- 1 zabbix zabbix 73 9月   7 16:36 userparameter_mysql_slave.conf
[root@slave zabbix_agentd.d]# systemctl restart zabbix-agent.service
3、去zabbix server验证状态,使用zabbix_get命令验证,需要先下载zabbix-get软件包
[root@server ~]# yum -y install zabbix-get
Last metadata expiration check: 0:22:40 ago on Wed 07 Sep 2022 04:15:48 PM CST.
Package zabbix-get-4.4.10-1.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@server ~]# zabbix_get -s 192.168.47.200 -k mysql.slave[sql]
0
[root@server ~]# zabbix_get -s 192.168.47.200 -k mysql.slave[io]
0
4、在zabbix web平台配置

新建监控项

在这里插入图片描述
新建触发器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、测试验证,将mysql主从关闭,查看zabbix告警信息,验证邮箱是否能接收到邮件
mysql -u root -predhat -e "stop slave;"
[root@slave zabbix_agentd.d]# mysql -uroot -p123 -e"stop slave;"
[root@slave zabbix_agentd.d]# mysql -uroot -p123 -e"show slave status\G;"
*************************** 1. row ***************************
               Slave_IO_State: 
                  Master_Host: master
                  Master_User: user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: 
          Read_Master_Log_Pos: 4
               Relay_Log_File: mariadb-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File: 
             Slave_IO_Running: No
            Slave_SQL_Running: No

六、zabbix监控主从延迟

1、配置库脚本
[root@slave zabbix_agentd.d]# cd /etc/zabbix/script/
[root@slave script]# ls
mysql_slave_status.sh
[root@slave script]# vim mysql_delay.sh

#!/bin/bash     
delay=$(mysql -uroot -p123 -e 'show slave status\G' 2> /dev/null | grep 'Seconds_Behind_Master' | awk '{print $2}')
if [ $delay == "NULL" ];then
echo 0
elif [ $delay -ge 0 ] && [ $delay -le 200 ];then         
echo 0
else
echo $delay
fi
[root@slave script]# chown -R zabbix.zabbix mysql_delay.sh 
[root@slave script]# chmod +x mysql_delay.sh 
[root@slave script]# ll
总用量 8
-rwxr-xr-x 1 zabbix zabbix 258 9月   7 17:37 mysql_delay.sh
2、配置agentd文件,并重启服务
[root@slave script]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql_slave.conf 

UserParameter=mysql.slave[*],/etc/zabbix/script/mysql_slave_status.sh $1
UserParameter=check_mysql_delay,/bin/bash /etc/zabbix/script/mysql_delay.sh
[root@slave script]# systemctl restart zabbix-agent.service 
3、zabbix server主机进行脚本测试
[root@slave script]# ./mysql_delay.sh 
0

[root@server ~]# zabbix_get -s 192.168.47.200 -k check_mysql_delay
0
4、在zabbix web平台操作

添加监控项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P8VM6SVG-1662560150191)(./1662544335194.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1707899.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年新算法-红嘴蓝鹊优化器(RBMO)优化BP神经网络回归预测

2024年新算法-红嘴蓝鹊优化器(RBMO)优化BP神经网络回归预测 亮点&#xff1a; 输出多个评价指标&#xff1a;R2&#xff0c;RMSE&#xff0c;MSE&#xff0c;MAPE和MAE 满足需求&#xff0c;分开运行和对比的都有对应的主函数&#xff1a;main_BP, main_RBMO, main_BPvsBP_R…

Mysql 单行转多行,把逗号分隔的字段拆分成多行

一、拆分前后的数据 二、执行SQL select substring_index(substring_index(a.gzlx,,,b.help_topic_id1),,,-1) gzlxname, a.gzlx,a.* from dt_task_zxgz_info a join mysql.help_topic b on b.help_topic_id < (length(a.gzlx) - length(replace(a.gzlx,,,))1) 三、解释说…

爷爷看了都会,打工人必备的摸鱼AI神器!免费!

去年&#xff0c;AI技术无疑成为了最为引人注目的焦点&#xff0c;层出不穷的创新应用令人目不暇接。尽管许多人对这股AI热潮的持久性持怀疑态度&#xff0c;但现实却用事实给予了最有力的反驳。AI所展现出的强大生产力&#xff0c;足以令人刮目相看。 而今年以来&#xff0c;…

【实用的 IDEA 配置和操作技巧总结】

前置知识 IDEA的设置快捷键为ctrlalts键&#xff0c;后文介绍IDEA常见的配置就不再赘述这一点了。 基础配置 取消默认打开上次项目 日常开发都会打开不同的项目&#xff0c;初次安装IDEA之后&#xff0c;每次打开IDEA都会开启上一次启动的项目&#xff0c;所以我们需要进入设…

Android studio sdk 虚拟机无法打开运行

1.确认是否在BIOS开启硬件虚拟化支持,选择Enable 2.win8/win10 Hyper-V冲突。控制面板-》程序与功能-》windows功能-》关闭 Hyper-V 3.sdk 路径非默认路径 复制avd C:\Users\Administrator\.android\avd 到 sdk的安装路径下 D:\Android\sdk 。重启软件重新启动即可

Spring:事务

1. 简介 spring对jdbc进行封装&#xff0c;简化对数据库的操作 2. HelloWorld 1. 搭建模块 2.加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dependency><groupId>org.springframework</groupId><artifactId>s…

香橙派 AIpro开发板初上手

一、香橙派 AIpro开箱 最近拿到了香橙派 AIpro&#xff08;OrangePi AIpro&#xff09;&#xff0c;下面就是里面的板子和相关的配件。包含主板、散热组件、电源适配器、双C口电源线、32GB SD卡。我手上的这个是8G LPDDR4X运存的版本。 OrangePi AIpro开发板是一款由香橙派与华…

MySQL详细安装、配置过程,多图,详解

本文适合centos7环境下安装mysql&#xff0c;在安装和卸载过程中&#xff0c;都在root用户下完成。文章目录 清理环境获取mysql官方yum源安装mysql yum源安装mysql服务安装报错解决办法验证是否安装完成启动mysql服务登录服务方法一&#xff1a;方法二&#xff1a;方法三&#…

工商银行异地卡兑换泰铢的流程

本文介绍在国内的工商银行&#xff0c;通过现金或银行卡兑换泰国铢等外国货币的纸币或硬币的方法。 最近&#xff0c;准备到泰国旅行&#xff0c;所以需要兑换一些泰铢&#xff0c;防止下飞机到当地后找不到汇率合适、兑换方便的换钱的地方。其中&#xff0c;因为对比发现工商银…

力扣刷题--2965. 找出缺失和重复的数字【简单】

题目描述 给你一个下标从 0 开始的二维整数矩阵 grid&#xff0c;大小为 n * n &#xff0c;其中的值在 [1, n2] 范围内。除了 a 出现 两次&#xff0c;b 缺失 之外&#xff0c;每个整数都 恰好出现一次 。 任务是找出重复的数字a 和缺失的数字 b 。 返回一个下标从 0 开始、…

3W 1.5KVDC 隔离 宽范围输入,双隔离双输出 DC/DC 电源模块——TPD-3W系列

TPD-3W系列产品是专门针对线路板上分布式电源系统中需要产生一组与输入电源隔离的双隔离双电源的应用场合而设计。该产品适用于&#xff1a;1&#xff09;输入电源的电压变化范围≤2&#xff1a;1 &#xff1b;2&#xff09;输入输出之间要求隔离≤1500VDC&#xff1b;3&#x…

免费无限换脸,火了,图片/视频/直播都行!

最强换脸AI工具Facefusion软件在近期更新到了2.6.0版本&#xff0c;带来了一系列的更新和改进&#xff0c;今天为大家分享一下最新的整合包。 Facefusion2.6.0版本介绍 FaceFusion不仅仅是一款换脸软件&#xff0c;它更是一个多功能的数字人和实时直播助手&#xff0c;真正开启…

去中心化的 S3,CESS 首创去中心化对象存储 DeOSS

Web3 在各个领域的应用和发展已成为讨论的焦点&#xff0c;尽管行业对 Web3 的定义各不相同&#xff0c;但一个普遍的共识是 Web3 赋予了用户对其数据的所有权和自主权。这一转变在我们的生活和工作与数字化越来越深入地融合之际至关重要&#xff0c;这意味着所有人类活动很快将…

【数据结构】直接选择排序详解!

文章目录 1.直接选择排序 1.直接选择排序 &#x1f427; begin 有可能就是 maxi &#xff0c;所以交换的时候&#xff0c;要及时更新 maxi &#x1f34e; 直接选择排序是不稳定的&#xff0c;例如&#xff1a; 9 [9] 5 [5]&#xff0c;排序后&#xff0c;因为直接选择排序是会…

git使用之合并分支

git config --global core.editor vim //修改默认编辑器为VIM git checkout master //切换到master分支git branch -a // 查看需要合并的分支名git merge 分支名 // //输入commit 花时间解决冲突 git push origin master //上传code git log --graph //查看历史提…

libmodbus开发库介绍

目录 功能概要源码获取源码内容结构源码与移植 功能概要 libmodbus是一个免费的跨平台支持RTU和TCP的Modbus库&#xff0c;遵循LGPL V2.1协议。libmodbus支持Linux、Mac Os X、FreeBSD、QNX和Windows等操作系统。libmodbus可以向符合Modbus协议的设备发送和接收数据&#xff0…

2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测

2024年新算法-秘书鸟优化算法(SBOA)优化BP神经网络回归预测 亮点&#xff1a; 输出多个评价指标&#xff1a;R2&#xff0c;RMSE&#xff0c;MSE&#xff0c;MAPE和MAE 满足需求&#xff0c;分开运行和对比的都有对应的主函数&#xff1a;main_BP, main_SBOA, main_BPvsBP_SB…

一文读懂Maven的安装与配置

一、前言【可忽略】 Maven本质是一个项目管理工具&#xff0c;类似于JDK是java开发工具。 我们需要管理什么呢&#xff1f;首先各种各样的依赖&#xff0c;比如SpringFramwork、Mybatis。 简单点做&#xff0c;我们新建个目录&#xff0c;就能管理这些jar包。然而&#xff0c;缺…

android studion 一直编译失败

无外网&#xff0c;无法下载对应的库导致编译失败 配置代理 1.修改镜像源 资源路径 为国内镜像 如下为国美腾讯软件镜像 distributionUrlhttps\://mirrors.cloud.tencent.com/gradle/gradle-8.6-bin.zip 2.构建仓储失败 无法下载。 添加国内仓储如下位置&#xff0c;重新…

你真的懂firewalld吗?不妨看看我的这篇文章

一、firewalld简介 firewalld防火墙是Linux系统上的一种动态防火墙管理工具&#xff0c;它是Red Hat公司开发的&#xff0c;并在许多Linux发行版中被采用。相对于传统的静态防火墙规则&#xff0c;firewalld使用动态的方式来管理防火墙规则&#xff0c;可以更加灵活地适应不同…