一、MySQL Utilities介绍

MySQL Utilities 提供一组命令行工具用于维护和管理 MySQL 服务器,包括:

管理工具 (克隆、复制、比较、差异、导出、导入)
复制工具 (安装、配置)
一般工具 (磁盘使用情况、冗余索引、搜索元数据)

MySQL Utilities是一系列的命令行工具以及Python库更容易完成管理的任务。库是用Python语言写的,这就意味着不需要安装其他任何工具和库。当前是基于Python2.6版本设计的,不支持Python3.1版本。

二、下载安装

2.1 下载地址

https://downloads.mysql.com/archives/utilities/

2.2 安装mysql utilities

shell> tar -xvzf mysql-utilities-1.6.5.tar.gz 
shell> cd mysql-utilities-1.6.5
shell> python ./setup.py build
shell> python ./setup.py install

三、工具使用

#下面为自测使用的参数,详细参数请查看--help
Binary Log Operations(二进制日志操作)
       mysqlbinlogmove   二进制日志移动
       mysqlbinlogpurge  二进制日志清理
       mysqlbinlogrotate 二进制日志老化工具    

Database Operations(数据库操作)
       mysqldbexport     数据导出
       mysqldbimport     数据导入
       mysqldbcopy       库级别数据库复制
       mysqldiff         数据库对象级别比较工具
       mysqldbcompare    数据库库级别比较工具

General Operations(通用用的操作)    
       mysqldiskusage    磁盘空间查看
       mysqlfrm          恢复故障表.frm文件
       mysqluserclone    用户克隆工具
       mysqluc           Utilities帮助工具
       mysqlindexcheck   索引检测工具
       mysqlmetagrep     元数据过滤器
       mysqlprocgrep     进程搜索及清理工具

High Availability Operations(高可用)
   mysqlreplicate   主从复制工具
   mysqlrpladmin    主从复制管理工具
   mysqlrplcheck    主从复制检测工具
   mysqlrplms       主从多元复制工具
   mysqlrplshow     主从复制拓扑图工具
   mysqlrplsync     主从复制同步工具
   mysqlfailover    主从failover工具
   mysqlslavetrx    从库事务跳过工具

Server Operations(服务器操作)
       mysqlserverinfo    服务器信息查看工具
       mysqlserverclone   服务器克隆工具    

Specialized Operations(特殊操作)
       mysqlauditadmin    审计管理工具
       mysqlauditgrep     审计日志过滤工具

本次只分享自己在实际使用中用到的工具!

3.1 mysqldbcopy 数据库复制工具使用

mysqldbcopy --source=root:mysql@127.0.0.1:3306 --destination=root:mysql@127.0.0.1:3306 tt:t1
#--source 源端数据库
#--destination 目标端数据库
#root:mysql@127.0.0.1:3306 数据库用户名:密码@ip地址:端口
#tt:t1 tt源端数据库名字:目标端数据库名字(目标端数据不用提前创建,执行命令时自动创建)

3.2 mysqlrplshow查看主从结构

my.cnf参数需要配置如下参数:

report_host=192.168.253.146
report_port=3306
[root@localhost ~]# mysqlrplshow --master=failover:pass@'192.168.253.146':3306 --discover-slaves-login=failover:pass --verbose
WARNING: Using a password on the command line interface can be insecure.
# master on 192.168.253.146: ... connected.
# Finding slaves for master: 192.168.253.146:3306

# Replication Topology Graph
192.168.253.146:3306 (MASTER)
  |
  +--- 192.168.253.130:3306 [IO: Yes, SQL: Yes] - (SLAVE)

#--master=failover:pass@'192.168.253.146':3306 主库用户名密码
#--discover-slaves-login=failover:pass 为从库复制账号和密码

3.3 非守护进程方式启动mysqlfailover查看主从

[root@localhost ~]# mysqlfailover --master=failover:pass@'192.168.253.146':3306 --discover-slaves-login=failover:pass
WARNING: Using a password on the command line interface can be insecure.
# Discovering slaves for master at 192.168.253.146:3306
# Discovering slave at 192.168.253.130:3306
# Found slave: 192.168.253.130:3306
# Checking privileges.
MySQL Replication Failover Utility
Failover Mode = auto     Next Interval = Mon May 31 14:26:34 2021

Master Information
------------------
Binary Log File      Position  Binlog_Do_DB  Binlog_Ignore_DB  
mysql-binlog.000003  194                                      

GTID Executed Set
ea4a306b-c1d3-11eb-bf34-000c29f06c14:1-16

Replication Health Status
+------------------+-------+---------+--------+------------+---------+
| host             | port  | role    | state  | gtid_mode  | health  |
+------------------+-------+---------+--------+------------+---------+
| 192.168.253.146  | 3306  | MASTER  | UP     | ON         | OK      |
| 192.168.253.130  | 3306  | SLAVE   | UP     | ON         | OK      |
+------------------+-------+---------+--------+------------+---------+

Q-quit R-refresh H-health G-GTID Lists U-UUIDs
# Discovering slaves for master at 192.168.253.146:3306
MySQL Replication Failover Utility
Failover Mode = auto     Next Interval = Mon May 31 14:28:58 2021

3.4 以守护进程方式启动mysalfailover

[root@localhost ~]# mysqlfailover --master=failover:pass@'192.168.253.146':3306 --discover-slaves-login=failover:pass --log=/tmp/failover.log --daemon=start
WARNING: Using a password on the command line interface can be insecure.
NOTE: Log file '/tmp/failover.log' does not exist. Will be created.
Starting failover daemon...

日志查看:

[root@node233 ~]# tail -fn 50 /tmp/failover.log
2016-10-17 17:47:54 PM INFO MySQL Utilities mysqlfailover version 1.6.4.
2016-10-17 17:47:54 PM INFO Server '192.168.253.131:3306' is using MySQL version 5.6.30-log.
2016-10-17 17:47:54 PM INFO Discovering slaves for master at 192.168.253.131:3306
2016-10-17 17:47:54 PM INFO Discovering slave at 192.168.253.146:3306
2016-10-17 17:47:54 PM INFO Found slave: 192.168.253.146:3306
2016-10-17 17:47:54 PM INFO Server '192.168.253.146:3306' is using MySQL version 5.6.30-log.
2016-10-17 17:47:54 PM INFO Discovering slave at 192.168.253.130:3306
2016-10-17 17:47:54 PM INFO Found slave: 192.168.253.130:3306
2016-10-17 17:47:54 PM INFO Server '192.168.253.130:3306' is using MySQL version 5.6.30-log.
2016-10-17 17:47:54 PM INFO Checking privileges.
2016-10-17 17:47:54 PM INFO Unregistering existing instances from slaves.
2016-10-17 17:47:54 PM INFO Registering instance on master.
2016-10-17 17:47:54 PM INFO Failover daemon started.
2016-10-17 17:47:54 PM INFO Failover mode = auto.
2016-10-17 17:47:57 PM INFO Master Information
2016-10-17 17:47:57 PM INFO Binary Log File: node233-binlog.000003, Position: 25463, Binlog_Do_DB: N/A, Binlog_Ignore_DB: N/A
2016-10-17 17:47:57 PM INFO GTID Executed Set: 8dc97c98-9439-11e6-9968-000c29b82d0d:1-511
2016-10-17 17:47:57 PM INFO Getting health for master: 192.168.253.131:3306.
2016-10-17 17:47:57 PM INFO Health Status:
2016-10-17 17:47:57 PM INFO host: 192.168.253.131, port: 3306, role: MASTER, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:47:57 PM INFO host: 192.168.253.146, port: 3306, role: SLAVE, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:47:57 PM INFO host: 192.168.253.130, port: 3306, role: SLAVE, state: UP, gtid_mode: ON, health: OK
###上述部分完成主从、权限检查,成功启动mysqlfailover后输出主从健康状态,后会间隔1s持续检查主从健康状态

2016-10-17 17:48:15 PM INFO Discovering slaves for master at 192.168.253.131:3306
2016-10-17 17:48:15 PM INFO Discovering slave at 192.168.253.146:3306
2016-10-17 17:48:15 PM INFO Discovering slave at 192.168.253.130:3306
2016-10-17 17:48:15 PM INFO Master Information
2016-10-17 17:48:15 PM INFO Binary Log File: node233-binlog.000003, Position: 33887, Binlog_Do_DB: N/A, Binlog_Ignore_DB: N/A
2016-10-17 17:48:15 PM INFO GTID Executed Set: 8dc97c98-9439-11e6-9968-000c29b82d0d:1-547
2016-10-17 17:48:15 PM INFO Getting health for master: 192.168.253.131:3306.
2016-10-17 17:48:15 PM INFO Health Status:
2016-10-17 17:48:15 PM INFO host: 192.168.253.131, port: 3306, role: MASTER, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:48:15 PM INFO host: 192.168.253.146, port: 3306, role: SLAVE, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:48:15 PM INFO host: 192.168.253.130, port: 3306, role: SLAVE, state: UP, gtid_mode: ON, health: OK
###此时将主节点mysql关闭,发布命令 [root@node233 ~]# service mysqld stop

2016-10-17 17:48:42 PM INFO Failed to reconnect to the master after 3 attemps. ###3次检测失败
2016-10-17 17:48:42 PM CRITICAL Master is confirmed to be down or unreachable.
2016-10-17 17:48:42 PM INFO Failover starting in 'auto' mode...
2016-10-17 17:48:42 PM INFO Candidate slave 192.168.253.146:3306 will become the new master.
2016-10-17 17:48:42 PM INFO Checking slaves status (before failover).
2016-10-17 17:48:42 PM INFO Preparing candidate for failover.   ###寻找candidate用于failover
2016-10-17 17:48:42 PM INFO Creating replication user if it does not exist.
2016-10-17 17:48:42 PM INFO Stopping slaves.
2016-10-17 17:48:42 PM INFO Performing STOP on all slaves.
2016-10-17 17:48:42 PM INFO Switching slaves to new master.
2016-10-17 17:48:42 PM INFO Disconnecting new master as slave.
2016-10-17 17:48:42 PM INFO Starting slaves.
2016-10-17 17:48:42 PM INFO Performing START on all slaves.
2016-10-17 17:48:42 PM INFO Checking slaves for errors.
2016-10-17 17:48:42 PM INFO Failover complete.                 ###此处failover完成
2016-10-17 17:48:42 PM INFO Discovering slaves for master at 192.168.253.146:3306
2016-10-17 17:48:47 PM INFO Unregistering existing instances from slaves.
2016-10-17 17:48:47 PM INFO Registering instance on new master 192.168.253.146:3306.
2016-10-17 17:48:48 PM INFO Master Information                 ###后续部分为持续的主从状态监测
2016-10-17 17:48:48 PM INFO Binary Log File: node245-binlog.000002, Position: 41173, Binlog_Do_DB: N/A, Binlog_Ignore_DB: N/A
2016-10-17 17:48:48 PM INFO GTID Executed Set: 5dacc005-943a-11e6-996d-000c29328504:1[...]
2016-10-17 17:48:48 PM INFO Getting health for master: 192.168.253.146:3306.
2016-10-17 17:48:48 PM INFO Health Status:
2016-10-17 17:48:48 PM INFO host: 192.168.253.146, port: 3306, role: MASTER, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:49:06 PM INFO Discovering slaves for master at 192.168.253.146:3306
2016-10-17 17:49:06 PM INFO Discovering slave at 192.168.253.130:3306
2016-10-17 17:49:06 PM INFO Found slave: 192.168.253.130:3306
2016-10-17 17:49:06 PM INFO Server '192.168.253.130:3306' is using MySQL version 5.6.30-log.
2016-10-17 17:49:06 PM INFO Master Information
2016-10-17 17:49:06 PM INFO Binary Log File: node245-binlog.000002, Position: 41173, Binlog_Do_DB: N/A, Binlog_Ignore_DB: N/A
2016-10-17 17:49:06 PM INFO GTID Executed Set: 5dacc005-943a-11e6-996d-000c29328504:1[...]
2016-10-17 17:49:06 PM INFO Getting health for master: 192.168.253.146:3306.
2016-10-17 17:49:06 PM INFO Health Status:
2016-10-17 17:49:06 PM INFO host: 192.168.253.146, port: 3306, role: MASTER, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:49:06 PM INFO host: 192.168.253.130, port: 3306, role: SLAVE, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:49:24 PM INFO Discovering slaves for master at 192.168.253.146:3306
2016-10-17 17:49:24 PM INFO Discovering slave at 192.168.253.130:3306
2016-10-17 17:49:24 PM INFO Master Information
2016-10-17 17:49:24 PM INFO Binary Log File: node245-binlog.000002, Position: 41173, Binlog_Do_DB: N/A, Binlog_Ignore_DB: N/A
2016-10-17 17:49:24 PM INFO GTID Executed Set: 5dacc005-943a-11e6-996d-000c29328504:1[...]
2016-10-17 17:49:24 PM INFO Getting health for master: 192.168.253.146:3306.
2016-10-17 17:49:24 PM INFO Health Status:
2016-10-17 17:49:24 PM INFO host: 192.168.253.146, port: 3306, role: MASTER, state: UP, gtid_mode: ON, health: OK
2016-10-17 17:49:24 PM INFO host: 192.168.253.130, port: 3306, role: SLAVE, state: UP, gtid_mode: ON, health: OK

3.5 检查主从库的一致性,并且显示主库从库的信息

#官方关于主从端口一直会报错的问题,前面是按照3306测试的,从mysqlrplcheck开始将从库端口改为3307接下来的测试:
官方网址:https://forums.mysql.com/read.php?144,594276,596297

错误演示:

[root@localhost ~]# mysqlrplcheck --master=root:mysql@127.0.0.1:3306 --slave=root:mysql@192.168.253.130:3306 --show-slave-status -vv
WARNING: Using a password on the command line interface can be insecure.
Usage: mysqlrplcheck --master=root@localhost:3306 --slave=root@localhost:3310
mysqlrplcheck: error: The master and slave are the same host and port.

正确演示:

[root@localhost ~]# mysqlrplcheck  --master=root:mysql@192.168.253.146:3306  --slave=root:mysql@192.168.253.130:3307 --show-slave-status -vv
WARNING: Using a password on the command line interface can be insecure.
# master on 192.168.253.146: ... connected.
# slave on 192.168.253.130: ... connected.
Test Description                                                     Status
---------------------------------------------------------------------------
Checking for binary logging on master                                [pass]
Are there binlog exceptions?                                         [pass]
Replication user exists?                                             [pass]
Checking server_id values                                            [pass]

master id = 4
 slave id = 5

Checking server_uuid values                                          [pass]

master uuid = ea4a306b-c1d3-11eb-bf34-000c29f06c14
 slave uuid = 2d65fce7-ae65-11eb-8ca2-000c29d3b1da

Is slave connected to master?                                        [pass]
Check master information file                                        [pass]

#
# Master information file:
#
              Master_Log_File : mysql-binlog.000005
          Read_Master_Log_Pos : 194
                  Master_Host : 192.168.253.146
                  Master_User : repl
              Master_Password : 123
                  Master_Port : 3306
                Connect_Retry : 60
           Master_SSL_Allowed : 0
           Master_SSL_CA_File :
           Master_SSL_CA_Path :
              Master_SSL_Cert :
            Master_SSL_Cipher :
               Master_SSL_Key :
Master_SSL_Verify_Server_Cert : 0
                    Heartbeat : 30
                         Bind :
           Ignored_server_ids : 0
                         Uuid : ea4a306b-c1d3-11eb-bf34-000c29f06c14
                  Retry_count : 86400
                      SSL_CRL :
                 SSL_CRL_Path :
        Enabled_auto_position : 1
                 Channel_Name :

Checking InnoDB compatibility                                        [pass]
Checking storage engines compatibility                               [pass]
Checking lower_case_table_names settings                             [pass]

 Master lower_case_table_names: 0
  Slave lower_case_table_names: 0

Checking slave delay (seconds behind master)                         [pass]

#
# Slave status:
#
               Slave_IO_State : Waiting for master to send event
                  Master_Host : 192.168.253.146
                  Master_User : repl
                  Master_Port : 3306
                Connect_Retry : 60
              Master_Log_File : mysql-binlog.000005
          Read_Master_Log_Pos : 345
               Relay_Log_File : localhost-relay-bin.000008
                Relay_Log_Pos : 413
        Relay_Master_Log_File : mysql-binlog.000005
             Slave_IO_Running : Yes
            Slave_SQL_Running : Yes
              Replicate_Do_DB :
          Replicate_Ignore_DB :
           Replicate_Do_Table :
       Replicate_Ignore_Table :
      Replicate_Wild_Do_Table :
  Replicate_Wild_Ignore_Table :
                   Last_Errno : 0
                   Last_Error :
                 Skip_Counter : 0
          Exec_Master_Log_Pos : 345
              Relay_Log_Space : 664
              Until_Condition : None
               Until_Log_File :
                Until_Log_Pos : 0
           Master_SSL_Allowed : No
           Master_SSL_CA_File :
           Master_SSL_CA_Path :
              Master_SSL_Cert :
            Master_SSL_Cipher :
               Master_SSL_Key :
        Seconds_Behind_Master : 0
Master_SSL_Verify_Server_Cert : No
                Last_IO_Errno : 0
                Last_IO_Error :
               Last_SQL_Errno : 0
               Last_SQL_Error :
  Replicate_Ignore_Server_Ids :
             Master_Server_Id : 4
                  Master_UUID : ea4a306b-c1d3-11eb-bf34-000c29f06c14
             Master_Info_File : mysql.slave_master_info
                    SQL_Delay : 0
          SQL_Remaining_Delay : None
      Slave_SQL_Running_State : Slave has read all relay log; waiting for more updates
           Master_Retry_Count : 86400
                  Master_Bind :
      Last_IO_Error_Timestamp :
     Last_SQL_Error_Timestamp :
               Master_SSL_Crl :
           Master_SSL_Crlpath :
           Retrieved_Gtid_Set : ea4a306b-c1d3-11eb-bf34-000c29f06c14:7-16
            Executed_Gtid_Set : ea4a306b-c1d3-11eb-bf34-000c29f06c14:1-16
                Auto_Position : 1
         Replicate_Rewrite_DB :
                 Channel_Name :
           Master_TLS_Version :
# ...done.

3.6 mysqlreplicate快速创建主从,

mysqlreplicate  --master=root:mysql@192.168.253.146:3306  --slave=root:mysql@192.168.253.130:3307  --rpl-user=repl:123

3.6 查看数据库占用的空间大小

[root@localhost ~]# mysqldiskusage --server=root:mysql@localhost
WARNING: Using a password on the command line interface can be insecure.
# Source on localhost: ... connected.
# Database totals:
+---------------------+-------------+
| db_name             |      total  |
+---------------------+-------------+
| mysql               | 12,165,302  |
| performance_schema  | 822,167     |
| sys                 | 480,242     |
| tt                  | 106,997     |
+---------------------+-------------+

Total database disk usage = 13,574,708 bytes or 12.95 MB

#...done.

3.7 索引检查,看是否有冗余的索引

mysqlindexcheck --server=root:mysql@localhost tt

附录:

几类常见的错误: 1、访问拒绝权限问题

# mysqlrplshow --master=failover:pass@192.168.253.131:3306 --discover-slaves-login=failover:pass  
WARNING: Using a password on the command line interface can be insecure.
# master on 192.168.253.131: ...
FAILED.

ERROR: Access denied for user 'failover'@'pass' (using password: YES)

应对方案,用户需要授予基于主机名的访问权限
mysql> grant all privileges on *.* to 'failover'@'pass' ;

2、权限不足的问题

# ERROR: User root on 192.168.253.131@3306 does not have sufficient privileges to execute the failover command 
   (required: SUPER, GRANT OPTION, REPLICATION SLAVE, SELECT, RELOAD, DROP, CREATE, INSERT).
2016-10-08 16:18:20 PM CRITICAL Not enough privileges to execute command.

应对方案,用户需要授予with grant option权限
mysql> grant all privileges on *.* to 'root'@'pass';

3、配置参数问题

[root@node233 ~]# mysqlfailover --master=root:pass@192.168.253.131:3306 --discover-slaves-login=root:pass
WARNING: Using a password on the command line interface can be insecure.
# Discovering slaves for master at 192.168.253.131:3306
# Discovering slave at 192.168.253.130:3306
# Found slave: 192.168.253.130:3306
# Discovering slave at 192.168.253.146:3306
# Found slave: 192.168.253.146:3306
# Checking privileges.
2016-10-08 16:21:40 PM CRITICAL Failover requires --master-info-repository=TABLE for all slaves.
ERROR: Failover requires --master-info-repository=TABLE for all slaves.

# 应对方案,需要在配置文件中增加上述参数,如本文之前描述

4、多个mysqlfailover进程启动问题

[root@node233 ~]# mysqlfailover --master=failover:pass@'192.168.253.131':3306 --discover-slaves-login=failover:pass
WARNING: Using a password on the command line interface can be insecure.
# Discovering slaves for master at 192.168.253.131:3306
# Discovering slave at 192.168.253.130:3306
# Found slave: 192.168.253.130:3306
# Discovering slave at 192.168.253.146:3306
# Found slave: 192.168.253.146:3306
# Checking privileges.
Multiple instances of failover console found for master 192.168.253.131:3306.
If this is an error, restart the console with --force.
Failover mode changed to 'FAIL' for this instance.
Console will start in 10 seconds..........starting Console.
MySQL Replication Failover Utility
Failover Mode = fail     Next Interval = Mon Oct 17 17:02:17 2016

如上,如果已经有启动的mysqlfailover,则出现上述failover模式
如果无启动的mysqlfailover,也出现上述情形,建议执行以下命令
mysql > truncate table mysql.failover_console;  --该表记录了主节点及端口号  
mysql> select * from mysql.failover_console \G
*************************** 1. row ***************************
host: 192.168.253.146
port: 3306
1 row in set (0.00 sec)

MySQL Utilities工具教程的更多相关文章

  1. MySQL Utilities管理工具

    前提: 1.安装MySQL Utilities工具 2.复制my_print_defaults命令至/usr/bin下或写入环境变量. 卸载方式: python ./setup.py clean -- ...

  2. 大数据工具篇之Hive与MySQL整合完整教程

    大数据工具篇之Hive与MySQL整合完整教程 一.引言 Hive元数据存储可以放到RDBMS数据库中,本文以Hive与MySQL数据库的整合为目标,详细说明Hive与MySQL的整合方法. 二.安装 ...

  3. MySQL管理工具MySQL Utilities — 介绍与安装(1)

    MySQL Utilities介绍 MySQL Utilities 提供一组命令行工具用于维护和管理 MySQL 服务器,包括: 管理工具 (克隆.复制.比较.差异.导出.导入) 复制工具 (安装.配 ...

  4. (5.6)mysql高可用系列——MySQL Utilities 管理工具

    关键词:mysql工具集,mysql管理工具,mysql utilities [1]安装mysql utilities cd /download wget https://cdn.mysql.com/ ...

  5. Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程

    原文地址:http://www.osyunwei.com/archives/7378.html 搬运是为了自己找资料方便. 准备篇 一.环境说明: 操作系统:Windows Server 2012 R ...

  6. Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程

    准备篇 一.环境说明: 操作系统:Windows Server 2012 R2 PHP版本:php 5.5.8 MySQL版本:MySQL5.6.15 二.相关软件下载: 1.PHP下载地址: htt ...

  7. mysql 基本使用教程(源于网络)

    http://dev.mysql.com/doc/refman/5.1/zh/index.html 3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择 ...

  8. 从零开始学数据分析,什么程度可以找到工作?( 内附20G、5000分钟数据分析工具教程大合集 )

    从零开始学数据分析,什么程度可以找到工作?( 内附20G.5000分钟数据分析工具教程大合集 )   我现在在Coursera上面学data science 中的R programming,过去很少接 ...

  9. MySQL WorkBench中文教程

    在网上找到了一份MySQL WorkBench的教程,点此可以下载Work Bench教程(原文),为了便于学习和交流,请朋友帮忙翻译成了中文,点此可以下载Work Bench教程(中文翻译版). 具 ...

随机推荐

  1. 23、nginx动态添加nginx_upstream_check_module健康检查模块

    nginx_upstream_check_module模块地址:https://github.com/yaoweibin/nginx_upstream_check_module 23.1.说明: 1. ...

  2. C# 实现复制Excel内容到DataGridview中

    业务要求:复制:将Excel内容复制到datagridview中 最终效果:复制Excel内容,点击datagridview中的某个单元格,顺着这个单元格自动填充自动增加行.偷懒了,没写填充在选择哪些 ...

  3. 组建Redis集群遇到`GLIBC_2.14' not found和ps -ef 不显示用户名

    RHEL6.9组建Redis sentinel集群遇到两个问题 今天在组件Redis sentinel 集群时,遇到两个问题,之前已经组建多次,都没碰到类似问题,在解决这两个问题时,耗费些时间. 问题 ...

  4. 什么是forward和include?

    请求包含的例子 第一个Servlet (DispatcherServlet) @Override protected void doGet(HttpServletRequest req, HttpSe ...

  5. Centos 8 上定时备份Gitlab ,脚本实现定时备份,备份恢复

    定时备份 要求 为了能够备份和恢复,请确保你的系统上安装了Rsync yum install rsync -y 配置备份目标机器免密认证 执行ssh-keygen -t rsa 生成私钥和公钥 ssh ...

  6. cordova自定义插件开发流程

    cordova自定义插件开发:1.cordova安装:npm install -g cordova2.plugman安装:npm install -g plugman3.cordova创建工程:cor ...

  7. OpenResty简介

    OpenResty(也称为 ngx_openresty)是一个全功能的 Web 应用服务器.它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项. 通过揉和众多设计良好的 ...

  8. 学C记录(理解递归问题之汉诺塔)

    汉诺游戏规则如下: 1.有三根相邻的柱子,标号为A,B,C. 2.A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘. 3.现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘 ...

  9. vue(19)嵌套路由

    嵌套路由 有时候在路由中,主要的部分是相同的,但是下面可能是不同的.比如访问首页,里面有新闻类的/home/news,还有信息类的/home/message.这时候就需要使用到嵌套路由.项目结构如下: ...

  10. PXE高效批量网络装机

    PXE高效批量网络装机               一.PXE概述                1)PXE (Preboot eXcution Environment)               ...