人大金仓KingbaseES:银河麒麟V10安装

news2024/11/15 8:21:29

人大金仓KingbaseES:银河麒麟V10安装

众所周知的原因,为了响应国家信创支持国产操作系统和数据库,现在我们公司的项目要从开源数据库PostgreSQL切换到人大金仓KingbaseES数据库(本质是早期版本的PostgreSQL)。使用的是国产操作系统银河麒麟V10版本,之前介绍过这里就不赘述了。

以下内容来自人大金仓官网

集成PostGIS的安装包下载地址在文章最下面,有需要的可直接跳过中间内容。

产品简介

金仓数据库管理系统[简称:KingbaseES]是北京人大金仓信息技术股份有限公司(简称人大金仓)自主研发的、具有自主知识产权的商用关系型数据库管理系统(DBMS)。该产品面向事务处理类应用,兼顾各类数据分析类应用,可用做信息管理系统、业务及生产系统、决策支持系统、全文检索、地理信息系统等的承载数据库。

安装前准备

硬件环境要求

KingbaseES支持通用X86_64、龙芯、飞腾、鲲鹏等国产CPU硬件体系架构。

版本要求
标准版/企业版/专业版/开发版CPU:X86、龙芯、飞腾、鲲鹏内存:512MB以上硬盘:10GB以上空闲空间

软件环境要求

KingbaseES支持各种主流的Linux操作系统64位发行版本,包括CentOS、中标麒麟、银河麒麟、统信UOS、Deepin、凝思、中科方德等操作系统。

检查和配置环境

检查操作系统信息

您可以通过以下命令查看操作系统信息:

cat /etc/*release

为避免安装失败,或安装结束后文件发生异常,请在安装前关闭操作系统的应用保护,或于安装时在操作系统界面手动点击允许程序执行。

检查系统内存与存储空间

您可以通过以下命令查看内存信息(以MB单位显示):

free -m

您可以通过以下命令查看磁盘存储信息(以GB单位显示):

df -hl

注意: /tmp目录需要至少10G空间。如果安装过程中出现存储空间不足的情况,请先释放足够的磁盘空间,再执行安装程序。如果硬件配置不满足要求,需要更换满足要求的硬件设备再进行安装。

配置内核参数

为了避免在KingbaseES安装和使用过程中出现问题,您需要检查和设置内核参数。

  • 内核参数

您可以参考内核参数查看命令(最新的系统,需参考系统的用户手册)检查内核参数。

参数查看命令
semmsl, semmns, semopm, and semmni# /sbin/sysctl -a | grep sem
shmall, shmmax, and shmmni# /sbin/sysctl -a | grep shm
file-max# /sbin/sysctl -a | grep file-max
ip_local_port_range# /sbin/sysctl -a | grep ip_local_port_range
rmem_default# /sbin/sysctl -a | grep rmem_default
rmem_max# /sbin/sysctl -a | grep rmem_max
wmem_default# /sbin/sysctl -a | grep wmem_default
wmem_max# /sbin/sysctl -a | grep wmem_max
aio-max-nr# /sbin/sysctl -a | grep aio-max-nr
tcp_wmem# /sbin/sysctl -a | grep tcp_wmem
tcp_rmem# /sbin/sysctl -a | grep tcp_rmem
参数参考值所在文件
semmsl250/proc/sys/kernel/sem
semmns32000
semopm100
semmni128
shmall2097152/proc/sys/kernel/shmall
shmmax最小: 536870912最大: 物理内存值减去1字节建议: 大于物理内存的一半/proc/sys/kernel/shmmax
shmmni4096/proc/sys/kernel/shmmni
file-max6815744/proc/sys/fs/file-max
aio-max-nr1048576注意: 本参数限制并发发出 的请求数量。应该设置以避免IO 子系统的失败。/proc/sys/fs/aio-max-nr
ip_local_port_range最小: 9000最大: 65500/proc/sys/net/ipv4/ip_local_port_range
rmem_default262144/proc/sys/net/core/rmem_default
rmem_max4194304/proc/sys/net/core/rmem_max
wmem_default262144/proc/sys/net/core/wmem_default
wmem_max1048576/proc/sys/net/core/wmem_max

若内核参数与参考值不一致,您可通过编辑/etc/sysctl.conf文件修改参数,如下所示:

fs.aio-max-nr= 1048576
fs.file-max= 6815744
kernel.shmall= 2097152
kernel.shmmax= 4294967295
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

内核参数修改完毕后,重启Linux系统,并输入如下命令查看内核参数的修改是否正确:

/sbin/sysctl -p
/sbin/sysctl -a
  • 资源使用参数

Linux资源限制配置文件是/etc/security/limits.conf。限制用户可使用的资源数量对系统的稳定性非常重要。您可以通过调整资源限制数量改进系统性能。limits.conf文件如下所示:

limits.conf配置文件

其中soft是一个警告值,hard是真正意义的阈值,超过系统就会报错,一般情况下两者设为同一个值。一般保持系统安装时的默认值即可。可配置的资源有如下种类:

资源项含义
core内核文件大小(KB)
data最大数据大小(KB)
fsize最大文件大小(KB)
memlock最大锁定内存地址空间(KB)
nofile最大打开的文件描述符数量
rss最大持久设置大小(KB)
stack最大堆栈大小(KB)
cpu最大CPU时间(分钟)
noproc最大进程数量
as地址空间限制(KB)
maxlogins用户最大登录次数
maxsyslogins系统上登录的最大数量
priority运行用户进程的优先级
locks用户可持有的最大文件锁数量
sigpending最大挂起的信号数量
msgqueuePOSIX消息队列使用的最大内存(字节)
nice最大可提升到的合适优先级
rtprio最大实时优先级

nofile、noproc、core参数可修改为如下值:

# *表示所有用户,可只设置root和kingbase用户
* soft nofile 65536
# 注意:设置nofile的hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登陆
* hard nofile 65535
* soft nproc 65536
* hard nproc 65535
# unlimited表示无限制
* soft core unlimited
* hard core unlimited
  • RemoveIPC参数

systemd-logind服务中引入的一个特性,是当一个用户退出系统后,会删除所有有关的IPC对象。该特性由/etc/systemd/logind.conf文件中的RemoveIPC参数控制。某些操作系统会默认打开,会造成程序信号丢失等问题(只有redhat7及以上和一些特殊的国产Linux的版本需要修改,改之前可先查看此项是否为默认yes)。设置RemoveIPC=no。 设置后重启服务:

systemctl daemon-reload
systemctl restart systemd-logind.service

预安装工作

在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录。

因此,建议在正式安装前,新建kingbase用户作为KingbaseES专用的系统用户,您可以先使用root用户运行如下命令创建kingbase用户:

useradd -m kingbase

注意

创建安装系统用户kingbase之后,如无特殊说明,本指南后续的操作默认使用kingbase用户进行操作。

该命令会同时创建同名用户组kingbase以及用户根目录/home/kingbase。继续运行如下命令设置kingbase用户的密码:

passwd kingbase

密码需要输入两次,保证两次输入的密码相同。

安装目录

KingbaseES默认的安装目录是 /opt/Kingbase/ES/V8 。如果不存在,您需要使用root用户先创建该目录,并赋予kingbase用户对该目录的读写权限。

mkdir -p /opt/Kingbase/ES/V8
chmod o+rwx /opt/Kingbase/ES/V8
chown -R kingbase:kingbase /opt/Kingbase/ES/V8

也可以自定义安装路径。如自定义安装路径为 /home/kingbase/kdb ,使用kingbase用户创建目录的命令如下:

su - kingbase
mkdir /home/kingbase/kdb
数据目录

数据目录是KingbaseES中存放数据文件的目录,默认是在安装目录下的data目录。也可以与安装目录分开单独设置。您可以根据业务系统数据量来单独设置数据目录路径,例如将数据目录初始化在本机硬盘或者挂载在盘阵上。 您可以运行如下命令创建数据目录:

mkdir /opt/Kingbase/ES/V8/data

数据目录不必事先创建。安装过程中会提示指定数据目录,如果目录不存在安装程序会自动创建。

安装包的挂载与取消

iso格式的安装程序包需要先挂载才能使用。挂载iso文件需要使用root用户。比如挂载的目录是iso文件同级目录KingbaseES,您可以运行如下命令进行挂载:

#cd KingbaseES_V008R006C005B0041_Lin64_install.iso所在目录
su
mount KingbaseES_V008R006C005B0041_Lin64_install.iso ./KingbaseESV8

KingbaseES目录下可以看到setup目录和setup.sh脚本。安装完成后您可以运行如下命令取消挂载iso文件:

su
umount ./KingbaseESV8

此时KingbaseES已经和iso文件解除挂载关系,您在KingbaseES目录下不会再看到安装相关文件。

开始安装

整体的安装流程如下图所示。

安装流程

启动安装程序

命令行安装支持中文和英文的文字提示。根据操作系统的语言设置会显示对应语言的提示信息。您可以执行如下命令查看操作系统的语言设置:

echo $LAN

如果系统显示值包含“zh_CN”,则为中文语言,安装程序会显示中文内容。否则,您可以执行如下命令修改语言设置为中文:

export LANG=zh_CN.UTF-8

接下来开始进行命令行安装过程。您首先进入安装程序中setup.sh所在目录,以kingbase用户执行如下命令:

sh setup.sh -i console

命令执行后,将会启动安装程序。

启动安装程序

您输入1,再按ENTER,选择“安装新的实例”;

您输入2,再按ENTER,选择“修改存在的实例”。

初次安装,输入1,按ENTER,进入“简介”界面。

简介

“简介”界面中提供了KingbaseES版本和安装程序版本等信息。

简介

输入quit,按ENTER退出安装;

输入back,按ENTER返回前一屏幕;

直接按ENTER进行下一步操作。

若无特殊说明,以下各步骤皆与此相同。

许可协议

在此步骤您需要阅读完整的许可协议。连续按ENTER翻页阅读直到结束。

许可协议

您输入Y(不分大小写)表示接受此许可协议条款。

您输入N(不分大小写)表示不接受此许可协议条款,输入其他无效。

若不接受,则会提示警告信息,无法继续安装,提示用户重新选择。

选择安装集

根据安装后数据库服务功能的不同,KingbaseES可分为完全安装、客户端安装和定制安装三种安装集。

  • 完全安装:包括数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
  • 客户端安装:包括接口、数据库开发管理工具、数据库迁移工具、数据库部署工具。
  • 定制安装:在数据库服务器、高可用组件、接口、数据库开发管理工具、数据库迁移工具、数据库部署工具所有组件中自由选择。

您输入1,或按ENTER接受缺省项,选择“完全安装”安装集,系统将安装KingbaseES所有组件,跳至 选择授权文件

您输入2,选择“客户端安装”安装集,系统将安装KingbaseES的所有客户端工具、编程接口、扩展插件以及命令行可执行二进制文件,跳至 选择安装文件夹

您输入3,选择“定制安装”安装集,可根据需求选择安装所需功能组件,将进入下一步 选择产品功能组件

选择安装集

选择产品功能组件

如选择定制安装的安装集,您需要继续选择产品功能组件。

选择产品功能部件

输入 不需要安装 的功能组件的序号,并以逗号分隔。

输入“?<号码>”,可查看该功能部件的说明。

这里选择的是 不需要安装 的组件。如果全部安装,则不需要输入,点击ENTER继续下一步。

选择授权文件

此步骤用于选择授权文件,若指定的授权文件合法,则将显示授权文件的详细信息。

选择授权文件

您输入授权文件的绝对路径后,按ENTER以检查授权文件,若授权文件有效,则进入下一步骤。

选择安装文件夹

此步骤用于选择安装路径。默认安装路径是/opt/Kingbase/ES/V8。

选择安装文件夹

您可自行输入一个绝对路径作为安装目录。缺省直接按ENTER键,即为默认路径。

再次确认完整路径,输入Y(不分大小写),按ENTER键继续。

预安装摘要

您在此步骤会看到即将安装产品的摘要信息。包括:

  • 产品名称。
  • 安装文件夹。
  • 指定安装的功能组件。
  • 安装路径所在磁盘空间信息。

预安装摘要

安装确认

您在此步骤进行安装确认。按ENTER键系统开始执行安装过程。

安装确认

正在安装

安装过程中会不断刷新安装进度。

如选择“完全安装”安装集,安装进度100%之后,将至 初始化数据库

如选择“客户端安装”安装集,安装进度100%之后,将至 安装完成

如选择“定制安装”安装集,并且选择安装数据库服务器组件,安装进度100%之后,将至 初始化数据库

正在安装

初始化数据库

首先选择数据库数据目录,默认数据库数据目录为安装目录下的data目录。

选择数据库目录

设置如下初始化数据库参数:

  • 默认端口为:54321(可自定义)
  • 默认账户为:system(可自定义)
  • 密码(自定义)
  • 默认字符集编码为:UTF8(可选GBK、GB18030)
  • 默认数据库兼容模式为:ORACLE(可选 PG、MySQL)
  • 默认大小写敏感为:是(可选否)
  • 默认数据块大小为:8k(可选16k、32k)
  • 默认加密方法为sm4(可选 rc4)
  • 默认身份认证方法为scram-sha-256(可选 scram-sm3,sm4,sm3)

端口

账户

密码

编码

模式

大小写敏感

存储块

加密方法

身份认证方法

初始化

安装完成

若安装过程中没有出现任何警告或错误,将显示如下界面。

安装完成

按ENTER键退出安装程序。

执行root.sh

如果想注册数据库服务为系统服务,您可以在安装并初始化数据库成功后,执行root.sh脚本来注册并启动数据库服务,具体步骤如下:

  1. 打开新终端;
  2. 切换到root用户;
  3. 运行${安装目录}/install/script/root.sh 。

如果想启动或停止数据库服务,进入${安装目录}/Server/bin目录执行如下命令:

#启动服务
sys_ctl -w start -D ${Data文件目录} -l "${Data文件目录}/sys_log/startup.log"
sys_ctl -w start -D /opt/Kingbase/ES/V8/data -l "/opt/Kingbase/ES/V8/data/sys_log/startup.log"
#停止服务
sys_ctl stop -m fast -w -D ${Data文件目录}
sys_ctl stop -m fast -w -D /opt/Kingbase/ES/V8/data

修改用户密码

cd  /opt/Kingbase/ES/V8/Server/bin

./ksql -p 54321 -U system test

ALTER USER system WITH PASSWORD 'Zykj@405406';

安装后检查

查看安装日志

在${安装目录}/Logs目录下,存在名称为 “install.log” 的日志文件,其中记录了安装过程的所有信息。您可以打开日志文件,查看如下所示安装结果信息判断是否安装正确。

安装日志

查看开始菜单

查看应用程序菜单中是否安装了KingbaseES菜单项,并且正确关联到对应的程序。开始菜单结构如下:

KingbaseES

  • 帮助
  • 数据库开发管理工具
  • 数据迁移工具
  • 数据库部署工具
  • 迁移评估工具
  • web版数据库开发管理工具
  • 异构数据比对工具
  • 异构数据同步服务
  • 卸载

验证工具是否能连接数据库

您可以使用交互式终端工具(ksql)连接数据库。进入${安装目录}/Server/bin目录,执行如下命令:

./ksql -p 54321 -U system test

-p参数指定初始化数据库时设置的端口。-U参数指定初始化数据库时设置的管理员用户,也可以是其他用户。

如果ksql能够正常连接数据库服务,则说明数据库安装正常。。

查看已安装数据库的版本信息

进入${安装目录}/Server/bin目录,执行

./kingbase –V;

或在交互式终端(ksql)中执行

select version();

解决缺库问题

如果安装机器操作系统缺少必要的so库文件,您可通过如下命令查看到有缺少so库文件的情况。在${安装目录}/Server/bin目录下执行:

ldd * | grep "not found"

在${安装目录}/Server/lib下,执行如下命令检查是否存在缺少的so库文件:

ls

若检查到安装目录/Server/lib下存在缺少的so库文件,则在安装目录/Server/lib下存在缺少的so库文件,则在{安装目录}/Server/lib下,执行

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`

卸载KingbaseES

删除数据库服务

如果在安装后执行root.sh脚本在系统中注册了数据库服务,需要在卸载前执行rootuninstall.sh脚本删除已注册的数据库服务。具体步骤如下:

  1. 打开新终端;
  2. 切换到root用户;
  3. 运行${安装目录}/install/script/rootuninstall.sh 。

控制台卸载

启动卸载

您以kingbase用户登录系统后,进入${安装目录}/Uninstall目录,执行如下命令,启动卸载程序。

sh Uninstaller -i console
准备卸载

准备卸载

输入quit再按ENTER退出卸载过程;直接按ENTER继续进行下一步。若无特殊说明,以下各步骤皆与此相同。

正在卸载

此步骤用于显示卸载进度。

正在卸载

完成卸载

对于初始化生成的文件或程序运行中生成的文件,卸载过程当中无法自动删除,请退出卸载程序后手动删除。

完成卸载

增删组件

整体操作流程如下图所示。

增删组件流程

首先您要进入安装程序中setup.sh所在目录,以kingbase用户执行如下命令:

sh setup.sh -i console

命令执行后,将会启动安装程序。

启动安装程序

输入2,选择“修改存在的实例”,按ENTER继续;

选择要修改的实例,按回车键;

输入1,选择“添加功能”,按ENTER继续添加功能的操作。

选择功能组件

选择功能组件

按照提示按ENTER,显示可以添加的组件列表。输入 不需要安装 的组件编号,多个编号用逗号隔开。按ENTER开始安装。

注意

这里选择的是 不需要安装 的组件。如果全部安装,则不需要输入,按回车键继续下一步。

安装进度

安装进度

此步骤用于显示安装进度。如果选择的组件包含数据库服务器,则后续会继续选择授权文件、初始化数据库步骤。

完成安装

安装进度

若安装过程中没有出现任何警告或错误,安装完成后提示按ENTER退出安装程序。

删除组件

当需要删除数据库某项组件而非数据库系统时,您可以通过数据库删除功能来进行维护。

启动入口

以kingbase用户登录系统后,进入${安装目录}/Uninstall目录,执行如下命令,启动卸载程序。

sh Uninstaller -i console

命令执行后,将会启动安装程序。

启动安装程序

输入2,按回车键,选择“修改存在的实例”;

选择要修改的实例,按回车键;

输入2,选择“删除功能”,按ENTER继续删除功能的操作。

选择功能组件

选择功能组件

显示已经安装的组件列表。输入需要删除的组件编号,多个编号用逗号隔开。按ENTER开始删除。

删除及完成

正在移除

此步骤用于显示删除进度。删除完成后自动退出安装程序。

设置PostGIS

创建数据库

 create database gis;

切换到gis数据库

\c gis

image-20240304200313462

查看当前数据库的扩展模块

\dx

image-20240304200418621

查看有哪些可加载的扩展模块

SELECT * FROM pg_available_extensions;

image-20240304200522672

创建postgis扩展

create extension postgis;

报错:缺少依赖

image-20240304200718851

缺少的依赖在/opt/Kingbase/ES/V8/Server/lib目录下的postgis_libs中

image-20240304201011442

image-20240304201031123

复制一份到上一层lib目录下即可:

 cp libgmp.so.10 ../

再次创建postgis,如下所示就成功了

image-20240304201258183

image-20240304201349908

下载地址

失效了和我说

链接:https://pan.baidu.com/s/1-a-7SzTGEb6oGY_r7ZBYDA
提取码:0003

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

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

相关文章

自适应控制算法讲解-案例(附C代码)

目录 一、自适应控制算法的基本原理 二、自适应控制算法分类 三、案例 3.1自适应PID控制 1&#xff09; 模型识别 2&#xff09;动态调整PID参数逻辑 3&#xff09;PID控制器 自适应控制算法是一种高级控制算法&#xff0c;用于处理那些参数不确定或者动态变化的系统。这类…

Elasticsearch:向量相似度计算 - 可笑的速度

作者&#xff1a;Chris Hegarty 任何向量数据库的核心都是距离函数&#xff0c;它确定两个向量的接近程度。 这些距离函数在索引和搜索期间执行多次。 当合并段或在图表中导航最近邻居时&#xff0c;大部分执行时间都花在比较向量的相似性上。 对这些距离函数进行微观优化是值…

AI-数学-高中-34概率-古典概率模型

原作者视频&#xff1a;【概率】【一数辞典】3古典概型_哔哩哔哩_bilibili 等可能性&#xff1a;每个样本点出现的可能性是相同的。 随机事件A的发生事件A的样本点数k / 样板空间总样本点数n。 示例1&#xff1a; 示例2&#xff1a;

[DevOps云实践] IaaC:通过CloudWatch Agent和自定义Metric监视服务器

[DevOps云实践] IaaC:通过CloudWatch Agent和自定义Metric监视服务器 现在有许多第三方工具可以用于监控EC2实例。尽管事实如此,我想为您提供使用AWS原生资源和工具(如AWS CloudWatch、CloudWatch Agent和CloudFormation)快速设置EC2监控所需的所有信息。 首先,您应该知…

2024.3.4

思维导图 作业1&#xff1a;广播 发送端&#xff1a; #include<myhead.h> int main(int argc, const char *argv[]) {//创建套接字int sfd socket(AF_INET,SOCK_DGRAM,0);if(sfd -1){perror("sockeet error");return -1;}//设置当前套接字允许广播属性int …

idea中引入新JDK环境

在不同的项目中往往会需要不同的运行环境&#xff0c;那么如何下载一个新的环境并运用到idea中呢&#xff1f; 下面给出的就是oracle官网&#xff0c;以JDK17为例教大家如何下载 Java Archive Downloads - GraalVM for JDK 17https://www.oracle.com/java/technologies/javase…

End-to-End Weakly-Supervised SemanticSegmentation with Transformers

摘要 弱监督语义分割&#xff08;WSSS&#xff09;使用图像级标签是一项重要且具有挑战性的任务。由于高训练效率&#xff0c;端到端的WSSS解决方案受到社区越来越多的关注。然而&#xff0c;当前的方法主要基于卷积神经网络&#xff0c;并未正确地探索全局信息&#xff0c;因…

在Visual Studio配置C++的netCDF库的方法

本文介绍在Windows电脑的Visual Studio软件中&#xff0c;配置C 语言最新版netCDF库的方法。 netCDF&#xff08;Network Common Data Form&#xff09;是一种用于存储、访问和共享科学数据的文件格式和库&#xff0c;其提供了一种灵活的方式来组织、描述和存储多维数据&#x…

【系统架构设计师考试大纲】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱考试目标考试要求考试题目题型分析计算机基础知识&#xff08;20%&#xff09;信息化战略与规划&#xff08;9%&#xff09;软件工程&#xff08;25%&#xff09;系统架构设计&#xff08;35%&#xff09;信…

适用于 Windows 的7大数据恢复软件解决方案

数据丢失是数字世界中令人不快的一部分&#xff0c;它会在某一时刻影响许多计算机用户。很容易意外删除一些重要文件&#xff0c;这可能会在您努力恢复它们时带来不必要的压力。幸运的是&#xff0c;数据恢复软件可以帮助恢复已删除的文件&#xff0c;即使您没有备份它们。以下…

AI大模型与小模型之间的“脱胎”与“反哺”(第三篇)

51. **异构图神经网络集成&#xff08;Heterogeneous Graph Neural Network Integration&#xff09;**&#xff1a; 构建异构图神经网络来捕获和整合各行业间复杂的实体关系及属性信息。每个行业的小模型可视为一个子图&#xff0c;将它们整合进一个统一的大图模型中&#xff…

力扣206反转链表

206.反转链表 力扣题目链接(opens new window) 题意&#xff1a;反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 1&#xff0c;双指针 2&#xff0c;递归。递归参考双指针更容易写&#xff0c; 为什么不用头插…

学习JAVA的第十三天(基础)

目录 API之Arrays 将数组变成字符串 二分查找法查找元素 拷贝数组 填充数组 排序数组 Lambda表达式 集合的进阶 单列集合 体系结构 Collection API之Arrays 操作数组的工具类 将数组变成字符串 //将数组变成字符串char[] arr {a,b,c,d,e};System.out.println(Arra…

Linux-信号3_sigaction、volatile与SIGCHLD

文章目录 前言一、sigaction__sighandler_t sa_handler;__sigset_t sa_mask; 二、volatile关键字三、SIGCHLD方法一方法二 前言 本章内容主要对之前的内容做一些补充。 一、sigaction #include <signal.h> int sigaction(int signum, const struct sigaction *act,struc…

计数排序详解(附源码)

目录 思想&#xff1a; 源码&#xff1a; 思想&#xff1a; 计数排序&#xff1a;用一个数组记录按原始数据中&#xff0c;每个数据出现的次数 非常牛批的思路&#xff0c;没有用到比较 直接对每个数据进行计数 然后从计数的数组中&#xff0c;往回覆盖数据 从左到右&#xf…

解决Qtcreator搜狗输入法无法输入中文问题

由于搜狗输入法依赖fcitx&#xff0c;所以我们解决该问题的核心操作是为QtCreator提供支持fcitx 本系统环境说明&#xff1a;ubuntu22.04、Qt5.12.8、Qt6.6.1&#xff08;我安装了Qt5、Qt6&#xff09; 一、尝试拷贝系统自带libfcitxplatforminputcontextplugin.so到Qt安装目…

科技云报道:阿里云降价,京东云跟进,谁能打赢云计算价格战?

科技云报道原创。 就在大家还在回味2月29日阿里云发布“史上最大降价”的惊喜时&#xff0c;京东云连夜发布降价消息&#xff0c;成为第一家跟进的云服务商&#xff0c;其“随便降&#xff0c;比到底&#xff01;”的口号&#xff0c;颇有对垒的意味&#xff0c;直接吹响了云计…

抖音视频评论批量采集软件|视频下载工具

《轻松搞定&#xff01;视频评论批量采集软件&#xff0c;助您高效工作》 在短视频这个充满活力和创意的平台上&#xff0c;了解用户评论是了解市场和观众心声的重要途径之一。为了帮助您快速获取大量视频评论数据&#xff0c;我们推出了一款操作便捷、功能强大的软件&#xff…

写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和(C语言)

例如&#xff0c;调用DigitSum(1729)&#xff0c;则应该返回1729&#xff0c;它的和是19 输入&#xff1a;1729&#xff0c;输出&#xff1a;19 int Func(int n) {if (n < 9){return n;}return n % 10 Func(n / 10); } int main() {printf("%d ", Func(12345));r…

链路负载均衡之DNS透明代理

一、DNS透明代理 一般来说&#xff0c;企业的客户端上都只能配置一个运营商的DNS服务器地址&#xff0c;DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址&#xff0c;这将导致内网用户的上网流量都集中在一个ISP的链路上转发&#xff0c;最终可能会造成链路拥塞&…