国产数据库

2023-10-26

作者 | JiekeXu

来源 | JiekeXu DBA之路(ID: JiekeXu_IT)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来体验一下 TiDB 5.0,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!

TiDB 是平凯星辰 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。更是墨天轮排行榜第一的国产数据库,可点击此处查看本月国产数据库排行榜。TiDB 的目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。今年四月份发布了 5.0 版本,六月二十四日又发布了 TiDB 5.1 版本,核心架构图如下:

总的来说,大体上由 TiDB 、TiKV 、 PD 三部分集群构成加上 Grafana 、dashboard 等监控服务,看了下面最小部署的拓扑图,个人学习想要在自己的笔记本上安装这么一套环境那绝对是不可能的。

由此可见需要十台机器,最小内存 8GB,个人笔记本肯定没法满足要求,但 TiDB 5.0 提供了一个 playground 的命令可以在个人笔记本上使用一台 Linux 机器模拟搭建一个集群环境,只要你的机器可联网就可以搭建出来。步骤很简单,下面我们一起体验一下吧。

首先需要一台 Linux 机器并可以上网,如何能够上网可参考我之前安装 openGauss 的文章

网络适配器选择【NAT】模式,查看宿主机无线适配器关于 net8 的网络配置,然后 VM 里选择【编辑】——>【虚拟网络编辑器】——>【DHCP设置】,子网 IP 需要和前面看到的在同一网段里,然后选择 DHCP 自动获取。

网卡配置如下:

[root@JiekeXu-Test network-scripts]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.7 (Maipo)
[root@JiekeXu-Test network-scripts]# free -m 
              total        used        free      shared  buff/cache   available
Mem:           7802        5682         142          42        1977        1832
Swap:          6143           0        6143
[root@JiekeXu-Test network-scripts]# more ifcfg-ens32
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="yes"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens32"
UUID="e8332396-7724-410f-9887-1fc0e27fc818"
DEVICE="ens32"
ONBOOT="yes"
GATEWAY="192.168.75.2"
IPADDR="192.168.75.128"
PREFIX="24"
IPV6_PRIVACY="no"

下载并安装 TiUP

使用如下 curl 命令

curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh

生效环境变量 source /root/.bash_profile 其实也就是 export PATH=/root/.tiup/bin:$PATH 一条命令。

使用 tiup playground 模拟出一个集群环境

直接执行 tiup playground 命令会运行最新版本的 TiDB 集群,其中 TiDB、TiKV、PD 和 TiFlash 实例各 1 个:

tiup playground

当然也可以指定各组件和实例个数

[root@JiekeXu-Test ~]# tiup playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor


上述命令会在本地下载并启动某个版本的集群(例如 v5.1.0),--monitor 表示同时部署监控组件。最新版本可以通过执行 tiup list tidb 来查看。

Available versions for tidb:
Version                             Installed  Release                              Platforms
-------                             ---------  -------                              ---------
nightly -> v5.0.0-nightly-20210718             2021-07-18T21:18:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.0                                         2020-04-16T14:03:31+08:00            darwin/amd64,linux/amd64
v3.0                                           2020-04-16T16:58:06+08:00            darwin/amd64,linux/amd64
v3.0.1                                         2020-04-27T19:38:36+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.2                                         2020-04-16T23:55:11+08:00            darwin/amd64,linux/amd64
v3.0.3                                         2020-04-17T00:16:31+08:00            darwin/amd64,linux/amd64
v3.0.4                                         2020-04-17T00:22:46+08:00            darwin/amd64,linux/amd64
v3.0.5                                         2020-04-17T00:29:45+08:00            darwin/amd64,linux/amd64
v3.0.6                                         2020-04-17T00:39:33+08:00            darwin/amd64,linux/amd64
v3.0.7                                         2020-04-17T00:46:32+08:00            darwin/amd64,linux/amd64
v3.0.8                                         2020-04-17T00:54:19+08:00            darwin/amd64,linux/amd64
v3.0.9                                         2020-04-17T01:00:58+08:00            darwin/amd64,linux/amd64
v3.0.10                                        2020-03-13T14:11:53.774527401+08:00  darwin/amd64,linux/amd64
v3.0.11                                        2020-04-17T01:09:20+08:00            darwin/amd64,linux/amd64
v3.0.12                                        2020-04-17T01:16:04+08:00            darwin/amd64,linux/amd64
v3.0.13                                        2020-04-26T17:25:01+08:00            darwin/amd64,linux/amd64
v3.0.14                                        2020-05-09T21:11:49+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.15                                        2020-06-05T16:53:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.16                                        2020-07-03T20:07:45+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.17                                        2020-08-03T15:27:29+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.18                                        2020-08-21T20:02:59+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.19                                        2020-09-25T18:24:11+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.0.20                                        2020-12-25T15:20:36+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-beta                                    2020-05-22T14:35:59+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-beta.1                                  2020-05-22T15:22:30+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-beta.2                                  2020-05-22T15:28:20+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0-rc                                      2020-05-22T15:56:23+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.0                                         2020-05-22T15:34:33+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.1                                         2020-04-30T21:02:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v3.1.2                                         2020-06-04T17:55:40+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-beta                                    2020-05-26T11:18:05+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-beta.1                                  2020-05-26T11:42:48+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-beta.2                                  2020-05-26T11:56:51+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-rc                                      2020-05-26T14:56:06+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-rc.1                                    2020-04-29T01:03:31+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0-rc.2                                    2020-05-15T21:54:51+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.0                                         2020-05-28T20:10:11+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.1                                         2020-06-12T21:21:12+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.2                                         2020-07-01T19:59:39+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.3                                         2020-07-25T01:03:31+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.4                                         2020-07-31T16:44:42+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.5                                         2020-08-31T23:53:35+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.6                                         2020-09-15T22:13:29+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.7                                         2020-09-29T20:15:07+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.8                                         2020-10-30T19:30:22+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.9                                         2020-12-21T17:25:20+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.10                                        2021-01-15T13:15:09+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.11                                        2021-02-26T17:39:23+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.12-20210427                               2021-05-08T11:09:37+08:00            linux/amd64
v4.0.12                                        2021-04-02T16:55:00+08:00            darwin/amd64,linux/amd64,linux/arm64
v4.0.13                                        2021-05-27T22:18:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-20210329                                2021-03-29T19:45:19+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-20210403                                2021-04-03T09:13:36+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-20210408                                2021-04-08T17:02:41+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-nightly-20210718                        2021-07-18T21:18:32+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0-rc                                      2021-01-12T23:40:27+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.0                              YES        2021-04-07T17:30:00+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.1                                         2021-04-24T21:31:28+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.2                                         2021-06-09T22:49:33+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.0.3                                         2021-07-02T16:13:22+08:00            darwin/amd64,linux/amd64,linux/arm64
v5.1.0                                         2021-06-24T16:23:50+08:00            darwin/amd64,linux/amd64,linux/arm64
  • 以这种方式执行的 playground,在结束部署测试后 TiUP 会清理掉原集群数据,重新执行该命令后会得到一个全新的集群。

  • 若希望持久化数据,可以执行 TiUP 的 --tag 参数,例如:tiup --tag '/root' playground v5.1.0 --db 3 --pd 3 --kv 3 --monitor

  • -T, --tag (string) :对启动的组件指定一个 tag:有的组件在执行过程中需要使用磁盘存储,TiUP 会分配一个临时目录作为该组件本次执行的存储目录,如果希望分配固定目录,可以用 -T/--tag 来指定目录名字,这样多次执行使用同样的 tag 就能读写到同一批文件。

可以使用 MySQL 客户端或者 tiup client 连接到 TiDB 5.0

[root@JiekeXu-Test ~]# tiup client
选择客户端连接

[root@JiekeXu-Test ~]# tiup client
Starting component `client`: /root/.tiup/components/client/v1.5.2/tiup-client
Connected with driver mysql (5.7.25-TiDB-v5.0.0)
Type "help" for help.

my:root@127.0.0.1:4000=> select tidb_version()\G
*************************** 1. row ***************************
tidb_version(): Release Version: v5.0.0
Edition: Community
Git Commit Hash: bdac0885cd11bdf571aad9353bfc24e13554b91c
Git Branch: heads/refs/tags/v5.0.0
UTC Build Time: 2021-04-06 16:36:29
GoVersion: go1.13
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false

my:root@127.0.0.1:4000=> show databases;
      Database      
--------------------
 INFORMATION_SCHEMA 
 METRICS_SCHEMA 
 PERFORMANCE_SCHEMA 
 mysql 
 test 
(5 rows)

my:root@127.0.0.1:4000=> use test;
USE
my:root@127.0.0.1:4000=> show tables;
(0 rows)

my:root@127.0.0.1:4000=> 
my:root@127.0.0.1:4000=> use mysql;
USE
my:root@127.0.0.1:4000=> show tables;
     Tables_in_mysql     
-------------------------
 GLOBAL_VARIABLES 
 bind_info 
 columns_priv 
 db 
 default_roles 
 expr_pushdown_blacklist 
 gc_delete_range 
 gc_delete_range_done 
 global_priv 
 help_topic 
 opt_rule_blacklist 
 role_edges 
 schema_index_usage 
 stats_buckets 
 stats_extended 
 stats_feedback 
 stats_fm_sketch 
 stats_histograms 
 stats_meta 
 stats_top_n 
 tables_priv 
 tidb 
 user 
(23 rows)

my:root@127.0.0.1:4001=> show databases;
      Database      
--------------------
 INFORMATION_SCHEMA 
 METRICS_SCHEMA 
 PERFORMANCE_SCHEMA 
 mysql 
 test 
(5 rows)

my:root@127.0.0.1:4001=> use METRICS_SCHEMA;
USE
my:root@127.0.0.1:4001=>

MySQL 客户端连接

[root@JiekeXu-Test ~]# mysql --host 127.0.0.1 --port 4001 -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.25-TiDB-v5.0.0 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
+--------------------+
5 rows in set (0.00 sec)

MySQL [(none)]> select version();
+--------------------+
| version()          |
+--------------------+
| 5.7.25-TiDB-v5.0.0 |
+--------------------+
1 row in set (0.01 sec)

MySQL [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MySQL [mysql]> 
MySQL [mysql]> show processlist;
+------+------+-----------------+-------+---------+------+------------+------------------+
| Id   | User | Host            | db    | Command | Time | State      | Info             |
+------+------+-----------------+-------+---------+------+------------+------------------+
|    9 | root | 127.0.0.1:43032 | mysql | Query   |    0 | autocommit | show processlist |
|   11 | root | 127.0.0.1:43182 | mysql | Sleep   |  127 | autocommit | NULL             |
+------+------+-----------------+-------+---------+------+------------+------------------+
2 rows in set (0.00 sec)

MySQL [mysql]>

除了连接还可以登录监控系统,通过虚拟机图形界面打开火狐,通过 http://127.0.0.1:9090 访问 TiDB 的 Prometheus 管理界面。
通过 http://127.0.0.1:2379/dashboard 访问 TiDB Dashboard 页面,默认用户名为 root,密码为空。




当然本次只是一个快速体验,当 tiup playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor 执行结果窗口 ctrl + c 取消后,集群也就不存在了,下次使用还得使用 tiup playground 命令,--tag 感觉不好用,体验不是很好,希望能够继续改进改进。

[root@JiekeXu-Test ~]# tiup playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor
Starting component `playground`: /root/.tiup/components/playground/v1.5.2/tiup-playground v5.0.0 --db 2 --pd 3 --kv 3 --monitor
Using the version v5.0.0 for version constraint "v5.0.0".

If you'd like to use a TiDB version other than v5.0.0, cancel and retry with the following arguments:
    Specify version manually:   tiup playground <version>
    Specify version range:      tiup playground ^5
    The nightly version:        tiup playground nightly

Playground Bootstrapping...
Start pd instance
Start pd instance
Start pd instance
Start tikv instance
Start tikv instance
Start tikv instance
Start tidb instance
Start tidb instance
Waiting for tidb instances ready
127.0.0.1:4000 ... Done
127.0.0.1:4001 ... Done
Start tiflash instance
Waiting for tiflash instances ready
127.0.0.1:3930 ... Done
CLUSTER START SUCCESSFULLY, Enjoy it ^-^
To connect TiDB: mysql --host 127.0.0.1 --port 4000 -u root -p (no password) --comments
To connect TiDB: mysql --host 127.0.0.1 --port 4001 -u root -p (no password) --comments
To view the dashboard: http://127.0.0.1:2379/dashboard
PD client endpoints: [127.0.0.1:2379 127.0.0.1:2382 127.0.0.1:2384]
To view the Prometheus: http://127.0.0.1:9090
To view the Grafana: http://127.0.0.1:3000

如何使用备份恢复工具 BR 进行备份恢复,如何使用数据导出工具 Dumpling 等等,有机会在学习体验,今天的快速体验就先到这里咯,也欢迎更多小伙伴体验哦!以下是我的地址,欢迎更多小伙伴来撩。如果此文对您有帮助,欢迎点赞、在看与转发,写作不易,坚持写作更不易,您的点赞、转发举手之劳,便是对作者最大的支持,也能让更多的人受益,感谢!
———————————————————————————

公众号:JiekeXu DBA之路
墨天轮:https://www.modb.pro/u/4347
CSDN :https://blog.csdn.net/JiekeXu
腾讯云:https://cloud.tencent.com/developer/user/5645107

———————————————————————————

2021年7月国产数据库排行榜:openGauss高歌猛进,GBase持续下跌

Oracle 12c 及以上版本补丁更新说明及下载方法(收藏版)

Oracle 19c 19.10DBRU 最新补丁升级看这一篇就够了

ASM 管理的内部工具:KFED、KFOD、AMDU

性能优化|关于数据库历史性能问题的一道面试题

一线运维 DBA 五年经验常用 SQL 大全(二)

ORA-00349|激活 ADG 备库时遇到的问题

Oracle 轻量级实时监控工具 oratop

MySQL OCP 认证考试你知道吗?

Oracle 19C RAC 安装遇到的坑

Oracle 19C MAA 搭建指南

Oracle 每日一题系列合集

百花齐放的国产数据库


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

国产数据库 的相关文章

  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • 单行的总和值?

    我有一个 MySQL 查询 它返回由一系列 1 和 0 组成的单行 它用于进度条指示器 我现在在代码中对它进行求和 但我尝试对查询中的值求和 并意识到我无法使用 SUM 因为它们有很多列 但只有一行 有没有办法可以在查询中自动求和 就像这样
  • LINUX:如何锁定内存中进程的页面

    我有一个 LINUX 服务器 运行一个具有大量内存占用的进程 某种数据库引擎 该进程分配的内存太大 需要将其中一部分换出 换出 我想做的是将所有其他进程 或正在运行的进程的子集 的内存页面锁定在内存中 以便只有数据库进程的页面被换出 例如
  • 将记录分成两列

    我的数据库中有一个 学生 表 其中包含大约 5 000 条记录 我想将这些记录显示在two分区 如何在不执行查询两次的情况下做到这一点 仅使用单个查询 显示示例http www freeimagehosting net uploads f1
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • MYSQL - 查找最近的前一天

    我可以以某种方式 不使用 PHP 找到一周中最近的前一天日期吗 Like 最近的上一个星期二的日期是哪一天 CURDATE INTERVAL WEEKDAY CURDATE wday IF WEEKDAY CURDATE gt wday 0
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • 如何才能将 TCP 连接返回到同一端口?

    机器是 RHEL 5 3 内核 2 6 18 有时我在 netstat 中注意到我的应用程序有连接 建立了 TCP 连接本地地址 and 国外地址是一样的 其他人也报告了同样的问题 症状与链接中描述的相同 客户端连接到本地运行的服务器的端口
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • 在 docker 中重定向命令输出

    我想为我的服务器做一些简单的日志记录 它是一个在 Docker 容器中运行的小型 Flask 应用程序 这是 Dockerfile Dockerfile FROM dreen flask MAINTAINER dreen WORKDIR s
  • Tomcat Intellij Idea:远程部署

    RackSpace 云服务器 Ubuntu 12 04 Intellij Idea 11 1 2 Windows 8 Tomcat 7 0 26 JDK 6 在 Intellij Idea 上 当我尝试在远程 Tomcat 7 服务器上运行
  • 在内核代码中查找函数的最佳方法[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我开始浏览内核代码 遇到的一件事是如何跟踪函数调用 结构定义等 有没有一种好的方法可以快速跳转到函数定义并退出 我尝试过 Source N
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样

随机推荐

  • 单片机控制直流电机(风扇)电路详解

    单片机引脚为什么无法直接控制电机或风扇 我们在使用单片机去控制 5V的直流电机或者散热风扇时 可能会有一种疑惑 51单片机的引脚电压为 5V 为什么不直接用单片机引脚去驱动电机或者风扇 实际上单片机的控制引脚 不管是51单片机或者stm32
  • Linux安装python显示“软件包python没有可安装候选”

    在Linux中安装python时 调用 sudo apt get install python 命令出现以下问题 sudo apt get install python sudo lyx 的密码 正在读取软件包列表 完成 正在分析软件包的依
  • java中public/private/protected的具体区别

    java中public private protected的具体区别 public public表明该数据成员 成员函数是对所有用户开放的 所有用户都可以直接进行调用 private private表示私有 私有的意思就是除了class自己
  • 深度学习——更深层次的神经网络

    一个深层次的CNN网络结构 这里使用的卷积层全都是3 3的小型滤波器 特点是随着层的加深 通道数变大 卷积层的通道数从前面的层开始按顺序以16 16 32 32 64 64的方式增加 此外 插入了池化层 以逐渐减小中间数据的空间大小 并且
  • C++ 字符串

    C 提供了以下两种类型的字符串表示形式 C 风格字符串 C 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言 并在 C 中继续得到支持 字符串实际上是使用 null 字符 0 终止的一维字符数组 因此 一个以
  • OpenMV的单颜色识别讲解

    OpenMV的官方教程 寻找色块 single color rgb565 blob tracking示例讲解 视频讲解 需要提前看的文章 程序烧录 颜色阈值设置 目录 threshold index和thresholds解析 固定代码部分
  • Vue记住滚动条位置 scrollBehavior + debounce

    Vue记住滚动条位置 1 先给占位符加一层缓存 2 在路由上加一个源信息meta 记录滚动条的top值 3 使用 scrollBehavior 4 给页面添加事件监听 使用前端路由 当切换到新路由时 想要页面滚到顶部 或者是保持原先的滚动位
  • 浅谈 js运行机制 、宏观任务、微观任务

    今天我们谈一下我对js 运行机制 和宏观任务 微观任务的理解 js运行机制有同步运行和异步运行 js是单线程运行模式在进入任务当中如果是同步任务 那么就直接被主线程运行 如果是异步任务 那么就进入任务队列中进行等待运行 直到主线程任务执行完
  • 二叉树基础

    文章目录 一 树的基础 1 树的概念 2 非树 3 树的相关概念 image 20220402143804166 https img blog csdnimg cn img convert a8bbb6f8483be3ca9edd9e354
  • 虚假人脸检测实验

    虚假人脸检测实验 虚假人脸识别 数据集链接 链接 https pan baidu com s 1ZY7 PqPGsxCBFerpfRW13Q pwd 0w2r 或者https download csdn net download weixi
  • 关于Windows Mobile手机视听电脑视音频的程序实现(一)

    心情不好 突然想写博客了 嘿嘿 其实这一个程序是差不多一年前实现的 那时正好着手一个项目 同时后来也因为这一个项目买了一款多普达手机 呵呵 这一个项目大概实现这么一个功能 电脑 服务器端 安装一个用于抓取摄像头与麦克风的数据 Windows
  • Qt元对象系统

    元对象系统 Meta Object System 元对象系统是一个基于标准C 的扩展 为Qt提供了信号与槽机制 实时类型信息 动态属性系统 元对象系统的三个基本条件 类必须继承自QObject 类声明Q OBJECT宏 默认私有有 元对象编
  • 如何解决幻读?

    一 什么是幻读 幻读 一个事务按相同的查询条件重新读取以前的检索过的数据 却发现其他事务插入了满足其条件查询的新数据 这种现象被成为幻读 进行了读取 分别读取了不同的数据 重点在于新增 insert 针对多笔数据 举个例子 事务A对数据进行
  • python机器人编程——无人机python联动控制实现(VREP仿真)1——手搓一个类ROS机器人消息订阅发布模块

    目录 一 前言 二 总体设想 三 系统的组成 四 python代码构建 构建一个MessageBroker消息代理类 以下这个是常规的MessageBroker类 以下这个是引入协程的MessageBroker类 下面是使用MessageB
  • uni-app插件使用注意事项

    1 将插件设置为全局组件后需要将项目重新运行 2 有些插件的功能会互斥 不要贪多全部装上 按需安装即可
  • QT中QMap使用实例详解

    QMap QMultiMap属于关联式容器 其底层结构是通过二叉树实现 故其查找value的效率很快 QMap中的数据都是成对出现的 第一个称为key 键 第二个称value 键值 目录 实例化QMap对象 插入数据 移除数据 遍历数据 由
  • siege压力测试工具安装和介绍

    前言 最近公司有个项目需要做一个短轮询类推送服务器 推送服务器分为三种 短轮询 长轮询 长连接 用户量不大 但是为了保险起见还是做一下压力测试 用的工具是siege 目录 前言 目录 siege介绍 siege安装 siege使用 1 si
  • python爬虫---用数据解析bs4爬取整部三国演义(不用诗词名句网)

    python爬虫 用数据解析bs4爬取整部三国演义 不用诗词名句网 需求 使用bs4实现将三国演义小说的每一章的内容爬取到本地磁盘进行存储 诗词名句网无法进去 所以我自己找了个网站爬取 思路差不多 首先 对首页的页面数据进行爬取 url h
  • 矩阵的逆矩阵 和 转置矩阵

    这几天用到了逆矩阵 就在这里总结一下逆矩阵和转置矩阵 逆矩阵 逆矩阵就是一个矩阵的逆向 比如一个点乘以一个矩阵后得到了一个新的点的位置 如果想通过这个点再获得矩阵转换前的位置 那我们就需要乘以这个矩阵的逆矩阵 在Three js里面 我们可
  • 国产数据库

    作者 JiekeXu 来源 JiekeXu DBA之路 ID JiekeXu IT 大家好 我是 JiekeXu 很高兴又和大家见面了 今天和大家一起来体验一下 TiDB 5 0 欢迎点击上方蓝字关注我 标星或置顶 更多干货第一时间到达 T