zoukankan      html  css  js  c++  java
  • 分布式监控解决方案zabbix03-监控mysql

    一 。mysql性能指标

       mysql服务器 内置的状态信息 可以获取mysql性能 

    查看当前登录后的session相关的状态信息

    [root@node1 ~]# mysql -uroot -proot -e "show status"
    查看全局的状态信息
     mysqladmin -h192.168.58.147 -P3306 -uroot -proot extended-status
    查看简易全局状态信息
    [root@node1 ~]# mysqladmin -h192.168.58.147 -P3306 -uroot -proot status
    Uptime: 196844  Threads: 13  Questions: 24377  Slow queries: 0  Opens: 248  Flush tables: 2  Open tables: 4  Queries per second avg: 0.123
    Uptime表示mysql运行的时间
    Threads表示线程总数
    Questions表示执行的查询数
    Slow queries 查询很慢的执行个数
    Opens 打开的连接数
    Open Tables 打开操作过的表个数
    Queries per second avg 平均每秒的查询个数
    具体的参数 可以通过 传入不同参数名称获取
    mysqladmin -h192.168.58.147 -P3306 -uroot -proot extended-status | grep Uptime
    查询总查询次数(查询Com_select 修改 Com_update 插入 Com_insert 删除 Com_delete)
    [root@node1 ~]# mysqladmin -h192.168.58.147 -P3306 -uroot -proot extended-status | grep Com_select
    | Com_select                               | 14710   
    zabbix模板中有个模板 Template DB MySQL

    点击进入发现里面定义的所有监控项全部都是上面的一些参数

    我们需要找一个获取mysql版本和是否存活的命令 用于检测 存活输出 1 非返回0

     mysqladmin -h192.168.58.147 -P3306 -uroot -proot ping | grep -c alive 
    查看mysql的版本
    [root@node1 ~]# mysqladmin -h192.168.58.147 -P3306 -uroot -proot version
    mysqladmin  Ver 9.0 Distrib 5.5.56-MariaDB, for Linux on x86_64
    Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
    
    Server version          5.5.56-MariaDB
    Protocol version        10
    Connection              192.168.58.147 via TCP/IP
    TCP port                3306
    Uptime:                 18 sec
    
    Threads: 2  Questions: 3  Slow queries: 0  Opens: 0  Flush tables: 2  Open tables: 4  Queries per second avg: 0.166

    总结其他status的参数值(转从 http://www.sandzhang.com/blog/2010/04/07/mysql-show-status-explained-detail/)

    状态名

    作用域

    详细解释

    Aborted_clients

    Global

    由于客户端没有正确关闭连接导致客户端终止而中断的连接数

    Aborted_connects

    Global

    试图连接到MySQL服务器而失败的连接数

    Binlog_cache_disk_use

    Global

    使用临时二进制日志缓存但超过binlog_cache_size值并使用临时文件来保存事务中的语句的事务数量

    Binlog_cache_use

    Global

    使用临时二进制日志缓存的事务数量

    Bytes_received

    Both

    从所有客户端接收到的字节数。

    Bytes_sent

    Both

    发送给所有客户端的字节数。

    com*

    各种数据库操作的数量

    Compression

    Session

    客户端与服务器之间只否启用压缩协议

    Connections

    Global

    试图连接到(不管是否成功)MySQL服务器的连接数

    Created_tmp_disk_tables

    Both

    服务器执行语句时在硬盘上自动创建的临时表的数量

    Created_tmp_files

    Global

    mysqld已经创建的临时文件的数量

    Created_tmp_tables

    Both

    服务器执行语句时自动创建的内存中的临时表的数量。如果Created_tmp_disk_tables较大,你可能要增加tmp_table_size值使临时 表基于内存而不基于硬盘

    Delayed_errors

    Global

    用INSERT DELAYED写的出现错误的行数(可能为duplicate key)。

    Delayed_insert_threads

    Global

    使用的INSERT DELAYED处理器线程数。

    Delayed_writes

    Global

    写入的INSERT DELAYED行数

    Flush_commands

    Global

    执行的FLUSH语句数。

    Handler_commit

    Both

    内部提交语句数

    Handler_delete

    Both

    行从表中删除的次数。

    Handler_discover

    Both

    MySQL服务器可以问NDB CLUSTER存储引擎是否知道某一名字的表。这被称作发现。Handler_discover说明通过该方法发现的次数。

    Handler_prepare

    Both

    A counter for the prepare phase of two-phase commit operations.

    Handler_read_first

    Both

    索引中第一条被读的次数。如果较高,它建议服务器正执行大量全索引扫描;例如,SELECT col1 FROM foo,假定col1有索引。

    Handler_read_key

    Both

    根据键读一行的请求数。如果较高,说明查询和表的索引正确。

    Handler_read_next

    Both

    按照键顺序读下一行的请求数。如果你用范围约束或如果执行索引扫描来查询索引列,该值增加。

    Handler_read_prev

    Both

    按照键顺序读前一行的请求数。该读方法主要用于优化ORDER BY ... DESC。

    Handler_read_rnd

    Both

    根据固定位置读一行的请求数。如果你正执行大量查询并需要对结果进行排序该值较高。你可能使用了大量需要MySQL扫描整个表的查询或你的连接没有正确使用键。

    Handler_read_rnd_next

    Both

    在数据文件中读下一行的请求数。如果你正进行大量的表扫描,该值较高。通常说明你的表索引不正确或写入的查询没有利用索引。

    Handler_rollback

    Both

    内部ROLLBACK语句的数量。

    Handler_savepoint

    Both

    在一个存储引擎放置一个保存点的请求数量。

    Handler_savepoint_rollback

    Both

    在一个存储引擎的要求回滚到一个保存点数目。

    Handler_update

    Both

    在表内更新一行的请求数。

    Handler_write

    Both

    在表内插入一行的请求数。

    Innodb_buffer_pool_pages_data

    Global

    包含数据的页数(脏或干净)。

    Innodb_buffer_pool_pages_dirty

    Global

    当前的脏页数。

    Innodb_buffer_pool_pages_flushed

    Global

    要求清空的缓冲池页数

    Innodb_buffer_pool_pages_free

    Global

    空页数。

    Innodb_buffer_pool_pages_latched

    Global

    在InnoDB缓冲池中锁定的页数。这是当前正读或写或由于其它原因不能清空或删除的页数。

    Innodb_buffer_pool_pages_misc

    Global

    忙的页数,因为它们已经被分配优先用作管理,例如行锁定或适用的哈希索引。该值还可以计算为Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data。

    Innodb_buffer_pool_pages_total

    Global

    缓冲池总大小(页数)。

    Innodb_buffer_pool_read_ahead_rnd

    Global

    InnoDB初始化的“随机”read-aheads数。当查询以随机顺序扫描表的一大部分时发生。

    Innodb_buffer_pool_read_ahead_seq

    Global

    InnoDB初始化的顺序read-aheads数。当InnoDB执行顺序全表扫描时发生。

    Innodb_buffer_pool_read_requests

    Global

    InnoDB已经完成的逻辑读请求数。

    Innodb_buffer_pool_reads

    Global

    不能满足InnoDB必须单页读取的缓冲池中的逻辑读数量。

    Innodb_buffer_pool_wait_free

    Global

    一般情况,通过后台向InnoDB缓冲池写。但是,如果需要读或创建页,并且没有干净的页可用,则它还需要先等待页面清空。该计数器对等待实例进行记数。如果已经适当设置缓冲池大小,该值应小。

    Innodb_buffer_pool_write_requests

    Global

    向InnoDB缓冲池的写数量。

    Innodb_data_fsyncs

    Global

    fsync()操作数。

    Innodb_data_pending_fsyncs

    Global

    当前挂起的fsync()操作数。

    Innodb_data_pending_reads

    Global

    当前挂起的读数。

    Innodb_data_pending_writes

    Global

    当前挂起的写数。

    Innodb_data_read

    Global

    至此已经读取的数据数量(字节)。

    Innodb_data_reads

    Global

    数据读总数量。

    Innodb_data_writes

    Global

    数据写总数量。

    Innodb_data_written

    Global

    至此已经写入的数据量(字节)。

    Innodb_dblwr_pages_written

    Global

    已经执行的双写操作数量

    Innodb_dblwr_writes

    Global

    双写操作已经写好的页数

    Innodb_log_waits

    Global

    我们必须等待的时间,因为日志缓冲区太小,我们在继续前必须先等待对它清空

    Innodb_log_write_requests

    Global

    日志写请求数。

    Innodb_log_writes

    Global

    向日志文件的物理写数量。

    Innodb_os_log_fsyncs

    Global

    向日志文件完成的fsync()写数量。

    Innodb_os_log_pending_fsyncs

    Global

    挂起的日志文件fsync()操作数量。

    Innodb_os_log_pending_writes

    Global

    挂起的日志文件写操作

    Innodb_os_log_written

    Global

    写入日志文件的字节数。

    Innodb_page_size

    Global

    编译的InnoDB页大小(默认16KB)。许多值用页来记数;页的大小很容易转换为字节。

    Innodb_pages_created

    Global

    创建的页数。

    Innodb_pages_read

    Global

    读取的页数。

    Innodb_pages_written

    Global

    写入的页数。

    Innodb_row_lock_current_waits

    Global

    当前等待的待锁定的行数。

    Innodb_row_lock_time

    Global

    行锁定花费的总时间,单位毫秒。

    Innodb_row_lock_time_avg

    Global

    行锁定的平均时间,单位毫秒。

    Innodb_row_lock_time_max

    Global

    行锁定的最长时间,单位毫秒。

    Innodb_row_lock_waits

    Global

    一行锁定必须等待的时间数。

    Innodb_rows_deleted

    Global

    从InnoDB表删除的行数。

    Innodb_rows_inserted

    Global

    插入到InnoDB表的行数。

    Innodb_rows_read

    Global

    从InnoDB表读取的行数。

    Innodb_rows_updated

    Global

    InnoDB表内更新的行数。

    Key_blocks_not_flushed

    Global

    键缓存内已经更改但还没有清空到硬盘上的键的数据块数量。

    Key_blocks_unused

    Global

    键缓存内未使用的块数量。你可以使用该值来确定使用了多少键缓存

    Key_blocks_used

    Global

    键缓存内使用的块数量。该值为高水平线标记,说明已经同时最多使用了多少块。

    Key_read_requests

    Global

    从缓存读键的数据块的请求数。

    Key_reads

    Global

    从硬盘读取键的数据块的次数。如果Key_reads较大,则Key_buffer_size值可能太小。可以用Key_reads/Key_read_requests计算缓存损失率。

    Key_write_requests

    Global

    将键的数据块写入缓存的请求数。

    Key_writes

    Global

    向硬盘写入将键的数据块的物理写操作的次数。

    Last_query_cost

    Session

    用查询优化器计算的最后编译的查询的总成本。用于对比同一查询的不同查询方案的成本。默认值0表示还没有编译查询。 默认值是0。Last_query_cost具有会话范围。

    Max_used_connections

    Global

    服务器启动后已经同时使用的连接的最大数量。

    ndb*

    ndb集群相关

    Not_flushed_delayed_rows

    Global

    等待写入INSERT DELAY队列的行数。

    Open_files

    Global

    打开的文件的数目。

    Open_streams

    Global

    打开的流的数量(主要用于记录)。

    Open_table_definitions

    Global

    缓存的.frm文件数量

    Open_tables

    Both

    当前打开的表的数量。

    原文地址:http://www.sandzhang.com/blog/2010/04/07/mysql-show-status-explained-detail/

    Opened_files

    Global

    文件打开的数量。不包括诸如套接字或管道其他类型的文件。 也不包括存储引擎用来做自己的内部功能的文件。

    Opened_table_definitions

    Both

    已经缓存的.frm文件数量

    Opened_tables

    Both

    已经打开的表的数量。如果Opened_tables较大,table_cache 值可能太小。

    Prepared_stmt_count

    Global

    当前的预处理语句的数量。 (最大数为系统变量: max_prepared_stmt_count) 

    Qcache_free_blocks

    Global

    查询缓存内自由内存块的数量。

    Qcache_free_memory

    Global

    用于查询缓存的自由内存的数量。

    Qcache_hits

    Global

    查询缓存被访问的次数。

    Qcache_inserts

    Global

    加入到缓存的查询数量。

    Qcache_lowmem_prunes

    Global

    由于内存较少从缓存删除的查询数量。

    Qcache_not_cached

    Global

    非缓存查询数(不可缓存,或由于query_cache_type设定值未缓存)。

    Qcache_queries_in_cache

    Global

    登记到缓存内的查询的数量。

    Qcache_total_blocks

    Global

    查询缓存内的总块数。

    Queries

    Both

    服务器执行的请求个数,包含存储过程中的请求。

    Questions

    Both

    已经发送给服务器的查询的个数。

    Rpl_status

    Global

    失败安全复制状态(还未使用)。

    Select_full_join

    Both

    没有使用索引的联接的数量。如果该值不为0,你应仔细检查表的索引

    Select_full_range_join

    Both

    在引用的表中使用范围搜索的联接的数量。

    Select_range

    Both

    在第一个表中使用范围的联接的数量。一般情况不是关键问题,即使该值相当大。

    Select_range_check

    Both

    在每一行数据后对键值进行检查的不带键值的联接的数量。如果不为0,你应仔细检查表的索引。

    Select_scan

    Both

    对第一个表进行完全扫描的联接的数量。

    Slave_heartbeat_period

    Global

    复制的心跳间隔

    Slave_open_temp_tables

    Global

    从服务器打开的临时表数量

    Slave_received_heartbeats

    Global

    从服务器心跳数

    Slave_retried_transactions

    Global

    本次启动以来从服务器复制线程重试次数

    Slave_running

    Global

    如果该服务器是连接到主服务器的从服务器,则该值为ON。

    Slow_launch_threads

    Both

    创建时间超过slow_launch_time秒的线程数。

    Slow_queries

    Both

    查询时间超过long_query_time秒的查询的个数。

    Sort_merge_passes

    Both

    排序算法已经执行的合并的数量。如果这个变量值较大,应考虑增加sort_buffer_size系统变量的值。

    Sort_range

    Both

    在范围内执行的排序的数量。

    Sort_rows

    Both

    已经排序的行数。

    Sort_scan

    Both

    通过扫描表完成的排序的数量。

    ssl*

    ssl连接相关

    Table_locks_immediate

    Global

    立即获得的表的锁的次数。

    Table_locks_waited

    Global

    不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。

    Threads_cached

    Global

    线程缓存内的线程的数量。

    Threads_connected

    Global

    当前打开的连接的数量。

    Threads_created

    Global

    创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。缓存访问率的计算方法Threads_created/Connections。

    Threads_running

    Global

    激活的(非睡眠状态)线程数。

    Uptime

    Global

    服务器已经运行的时间(以秒为单位)。

    Uptime_since_flush_status

    Global

    最近一次使用FLUSH STATUS 的时间(以秒为单位)。

    这里 写个脚本统一到一个脚本文件中传入对应的参数获取对应的结果 (注意开头加 #!/bin/sh)

    #!/bin/sh
    MYSQL_HOST=192.168.58.147
    MYSQL_PORT=3306
    MYSQL_UID=root
    MYSQL_PWD=root
    
    MY_COMMAD="mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_UID} -p${MYSQL_PWD} "
    #支持 ping version qps 以及其他状态值
    if [ ${1} = "ping" ] 
    then
      MYSQL_C="${1}"
      MYSQL_STATUS=`${MY_COMMAD} ping | grep -c alive` 
      echo "${MYSQL_STATUS}"
      
    elif [ ${1} = "version" ]
    then
       echo   $(${MY_COMMAD} version)
    elif [ ${1} = "qps" ]
    then
       #QPS=查询的总次数/上线运行的总时间   可以通过 mysqladmin -uroot -proot status 截取最后一段 我这里自己计算 复习下awk
       QueryCount=$(mysqladmin -uroot -proot extended-status | grep Queries | cut -f3 -d'|');
       Uptime=$(mysqladmin -uroot -proot extended-status | grep Uptime |  awk -F '|' '{if(NR==1)print $3}')   
       #echo `expr ${QueryCount} / ${Uptime}` 不支持浮点数
       echo -e ${QueryCount} \t  ${Uptime} | awk '{printf("%.3f",$1/$2)}'
    else
      echo `${MY_COMMAD} extended-status | grep ${1} | awk -F '|' '{if(NR==1)print $3}'` 
    fi
    

    参数1 可以传入 ping  version 以及mysql的状态信息(添加执行权限 chmod +x ./mysql.sh) 比如

    [root@node1 ~]# ./mysql.sh Com_select
    194
    [root@node1 ~]# ./mysql.sh Com_update
    0
    [root@node1 ~]# ./mysql.sh Com_delete
    0
    [root@node1 ~]# ./mysql.sh Com_insert
    80
    [root@node1 ~]# ./mysql.sh ping
    1
    [root@node1 ~]# ./mysql.sh version
    mysqladmin Ver 9.0 Distrib 5.5.56-MariaDB, for Linux on x86_64 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Server version 5.5.56-MariaDB Protocol version 10 Connection 192.168.58.147 via TCP/IP TCP port 3306 Uptime: 29 min 38 sec Threads: 12 Questions: 454 Slow queries: 0 Opens: 1 Flush tables: 2 Open tables: 4 Queries per second avg: 0.255

    二。 zabbix配置mysql监控

      这里为了研究zabbix定义模板 监控项 触发器等常见配置 所以我从头开始建立一个模板 首先了解下自定义采集的过程
       》》 用户自定义采集的脚本  脚本传入一些特定的参数 来决定获取哪些结果 结果输出一些数字或者转改信息用于统计
       》》 被监控的机器 需要安装zabbix-agent 同时配置调用自定义脚本已经传入的参数信息
       》》在zabbit-server端尝试使用zabbit-get测试agent定义的参数是否能正常获取数据
       》》 在web界面添加主机 对应的监控项以及图表 触发器等

    演示环境
        

    192.168.58.152  zabbix-server和zabbix-web  
    192.168.58.147 zabbix-agent 被监控的mysql主机  
    1》自定义监控脚本
       章节1 已经给出 
    2》安装mysql数据库+zabbix-agent
      安装mariadb 安装过程参考(http://blog.csdn.net/liaomin416100569/article/details/78580382)
      安装zabbix-agent 参考(http://blog.csdn.net/liaomin416100569/article/details/78672475)
      zabbix-server和zabbix-web参考(http://blog.csdn.net/liaomin416100569/article/details/78663086)

     配置zabbix-agent调用自定义脚本  
     zabbix使用 UserParamerter指定 定义监控项和脚本间的调用关系  比如
     UserParameter=web监控项名称(在web上定义key名称), 调用的命令
     修改配置文件 (/etc/zabbix/zabbix_agentd.conf) 【注意key名称 我使用mysql.无法启动不知为何】

    Server=192.168.58.152
    ServerActive=192.168.58.152
    Hostname=MysqlMonitor
    UserParameter=mysqlm.ping, /root/mysql.sh ping
    UserParameter=mysqlm.version, /root/mysql.sh version
    UserParameter=mysqlm.qps, /root/mysql.sh qps
    UserParameter=mysqlm.status[*], /root/mysql.sh $1
    AllowRoot=1  #不设置 默认的账号zabbix无权限执行
    
    3》使用zabbix-get测试
      在152服务器安装 zabbix-get
    [root@bogon ~]# yum -y install zabbix-get
    测试
    [root@bogon ~]# zabbix_get -s 192.168.58.147 -k mysqlm.ping
    sh: /root/mysql.sh: Permission denied
    发现已经调用 说没有权限执行mysql.sh 后面到147上发现zabbix-agent是以zabbix账号运行的将脚本的所有者 赋给zabbix 将AllowRoot=1设置
    [root@bogon ~]# zabbix_get -s 192.168.58.147 -k mysqlm.ping
    1
    [root@bogon ~]# zabbix_get -s 192.168.58.147 -k mysqlm.version
    mysqladmin Ver 9.0 Distrib 5.5.56-MariaDB, for Linux on x86_64 Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others. Server version 5.5.56-MariaDB Protocol version 10 Connection 192.168.58.147 via TCP/IP TCP port 3306 Uptime: 1 hour 25 min 18 sec Threads: 12 Questions: 1650 Slow queries: 0 Opens: 1 Flush tables: 2 Open tables: 4 Queries per second avg: 0.322
    [root@bogon ~]# zabbix_get -s 192.168.58.147 -k mysqlm.status[Com_select]
    571
    4》zabbix-web添加主机和监控项
      》》创建mysql模板
      点击配置-模板-右上角 添加


    》》添加监控项
       再次进入所有模板列表点击列表中的监控项 进入
     
    进入监控项列表 右上角 添加 弹出窗口
     这里 我就监控 四个数据 版本号(verson)  是否存活(ping) 每秒查询次数(Queries/Uptime)  连接线程数(Threads_connected)
    版本号监控项如下

    是否存活 监控项

    Qps监控项:


    连接线程数(key是 mysqlm.status["Threads_connected"])图片上填错

    mysql服务时间(key是 mysqlm.status["Uptime"])图片上填错

    》》添加主机

      点击 配置 -主机 -右上角添加主机
     

    模板页签上选择我们自定义的模板 注意点击下面的超链接添加


    最后点击主机界面下角的添加 列表中出现mysql监控的主机  点击图形

    比如添加一个qps的图形

    图形类别中 如果需要用其他图形可以选择图形类别
    预览一下 看效果

    也可以点击 检测中 - 图形 进入查看对应 主机的图形  其他几个线程数 自己添加即可 

    mysql.ping主要用于判断mysql是否挂掉 需要配置触发器 当mysql.ping=0时 发邮件通知管理员
    5》发送邮件预警
      借助mailx来配置第三方邮件发送邮件 
    安装 mailx

    yum -y install mailx
    查看mailx所有文件
    [root@node1 ~]# rpm -ql mailx-12.5-16.el7.x86_64
    /bin/mail
    /bin/mailx
    /etc/mail.rc
    /usr/bin/Mail
    /usr/bin/nail
    /usr/share/doc/mailx-12.5
    /usr/share/doc/mailx-12.5/AUTHORS
    /usr/share/doc/mailx-12.5/COPYING
    /usr/share/doc/mailx-12.5/README
    /usr/share/man/man1/Mail.1.gz
    /usr/share/man/man1/mail.1.gz
    /usr/share/man/man1/mailx.1.gz
    /usr/share/man/man1/nail.1.gz
    修改/etc/mail.rc添加发送账号的邮箱地址 smtp服务器 以及用户名和密码(我这里使用了126 因为126默认开启了smtp qq必须二次密保才能开 麻烦)
    set from=lixin1112003@126.com 
    set smtp=smtp.126.com
    set smtp-auth-user=lixin1112003
    set smtp-auth-password=你的邮箱密码
    set smtp-auth=login  
    尝试 发送邮件
    echo "邮件内容" |mail -s "邮件标题" 接受邮箱地址
    比如我的测试 
    echo "zabbix邮箱测试" |mail -s "测试邮箱是否正常发送" 973465719@qq.com
    登录qq邮箱 发现该邮件被自动丢进了垃圾箱

    查看zabbix-server默认的报警脚本存在未知 ( /etc/zabbix/zabbix_server.conf )
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    创建一个sm.sh内容*
    echo "$3" |mail -s "$2" $1
    添加权限测试
    cd /usr/lib/zabbix/alertscripts
    chmod +x ./sm.sh
     ./sm.sh lixin1112003@126.com hello jiaozi
    web界面添加报警媒介类型 点击 管理-报警媒介类型 修改email


    用户 添加报警媒介 点击管理-用户-点击|Admin进入-点击报警媒介  输入需要接受报警邮件的邮箱地址

    主机添加触发器  点击配置 主机 点击mysql监控列表中的 触发器


    新建一个mysql触发器(什么条件满足就触发 mysql的ping为0表示mysql挂了 需要触发)

    配置动作 触发器触发后需要作出一些动作 比如通知哪些用户 点击配置-动作 -右上角新建触发器
    动作页签 用于输入 满足什么触发器条件 

    操作 页签表示出现异常后的 发送消息的格式 以及通知的用户(用户配置了报警媒介 )


    恢复操作 同操作
    测试关闭 147的数据库

    service mariadb stop
    点击web界面的log进入首页

    确定出现状态 也通过fox接受到了邮件

    最后查看仪表盘 发现动作状态由启用中 - 完成  也可以试着重启一下 mariadb 看是否也有邮件提醒

  • 相关阅读:
    Mysql登录错误:ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded
    Docker配置LNMP环境
    Docker安装mysqli扩展和gd扩展
    Docker常用命令
    Ubuntu常用命令
    单例模式的优缺点和使用场景
    ABP 多租户数据共享
    ABP Core 后台Angular+Ng-Zorro 图片上传
    ERROR Error: If ngModel is used within a form tag, either the name attribute must be set or the form control must be defined as 'standalone' in ngModelOptions.
    AbpCore 执行迁移文件生成数据库报错 Could not find root folder of the web project!
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331158.html
Copyright © 2011-2022 走看看