openGauss_5.0.1 企业版安装及问题记录(CentOS系统):主备模式服务器安装

目录

  • 📚第一章 官方地址
    • 📗安装包下载地址
    • 📗文档指南
  • 📚第二章 安装
    • 📗准备工作
    • 📗开始安装
      • 📕创建XML配置文件
      • 📕初始化安装环境
      • 📕执行安装
      • 📕验证
  • 📚第三章 安装总结
  • ⁉️问题记录
    • ❓问题一:执行gs_preinstall报错:Python 解释器在编译时未使用 -enable-shared 选项
      • ❗解决方式:重新安装python,放开--enable-shared
    • ❓问题二:No module named '_ctypes'
      • ❗解决方式:安装libffi-devel
    • ❓问题三:libpython3.6m.so.1.0 未找到
      • ❗解决方式:重新安装python3.6(5.0版本只支持python3.6)
    • ❓问题四:Failed to read clusterName. Error:
      • ❗解决方式:配置不对
    • ❓问题五: Failed to obtain local instance information
      • ❗解决方式:修改主机名
    • ❓问题六:[GAUSS-51405] : You need to install software:expect
    • ❓问题七:[FAILURE] bigdata02:[GAUSS-51251] : The /home/opengauss/app cannot be a root user group or a lin
    • ❓问题八:[GAUSS-51405] : You need to install software:['bzip2']

🔼下一集:openGauss_5.1.0 企业版快速安装及数据库连接:单节点容器化安装

📚第一章 官方地址

📗安装包下载地址

https://opengauss.org/zh/download/
在这里插入图片描述
简单注册下账号,登录即可下载,注意对应的操作系统
在这里插入图片描述

📗文档指南

https://docs-opengauss.osinfra.cn/zh/docs/5.0.0/docs/InstallationGuide/InstallationGuide.html
在这里插入图片描述

📚第二章 安装

📗准备工作

关闭防火墙等配置,状态保持和下图一致
在这里插入图片描述

[root@localhost home]# less /etc/selinux/config# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted [root@localhost home]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)
[root@localhost home]# 

重新启动操作系统(谨慎操作,确保该机器上没有其它应用):

reboot

检查防火墙是否关闭(inactive (dead)):

systemctl status firewalld

关闭防火墙:

systemctl disable firewalld.service
systemctl stop firewalld.service

详见官网-准备软硬件安装环境章节,不同操作系统略存差异
在这里插入图片描述

📗开始安装

📕创建XML配置文件

按需创建目录(也可以直接根据官网的配置文件创建目录,省的修改配置文件了)

mkdir -p /home/opengauss/{app,log,tmp,tool,corefile,data}

创建并修改文件,参考如下,采用的一主一备配置,cluster_config.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<ROOT><!-- openGauss整体信息 --><CLUSTER><!-- 数据库名称 --><PARAM name="openGaussDB" value="Cluster_template" /><!-- 数据库节点名称(hostname) --><PARAM name="nodeNames" value="bigdata01,bigdata02" /><!-- 数据库安装目录--><PARAM name="gaussdbAppPath" value="/home/opengauss/app" /><!-- 日志目录--><PARAM name="gaussdbLogPath" value="/home/opengauss/log" /><!-- 临时文件目录--><PARAM name="tmpMppdbPath" value="/home/opengauss/tmp"/><!-- 数据库工具目录--><PARAM name="gaussdbToolPath" value="/home/opengauss/tool" /><!-- 数据库core文件目录--><PARAM name="corePath" value="/home/opengauss/corefile"/><!-- 节点IP,与数据库节点名称列表一一对应 --><PARAM name="backIp1s" value="192.168.2.10,192.168.2.11"/> </CLUSTER><!-- 每台服务器上的节点部署信息 --><DEVICELIST><!-- 节点1上的部署信息 --><DEVICE sn="bigdata01"><!-- 节点1的主机名称 --><PARAM name="name" value="bigdata01"/><!-- 节点1所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点1的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.2.10"/><PARAM name="sshIp1" value="10.0.2.10"/><!--dn--><PARAM name="dataNum" value="1"/><PARAM name="dataPortBase" value="15400"/><PARAM name="dataNode1" value="/home/opengauss/data,bigdata02,/home/opengauss/data"/><PARAM name="dataNode1_syncNum" value="0"/></DEVICE><!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 --><DEVICE sn="bigdata02"><!-- 节点2的主机名称 --><PARAM name="name" value="bigdata02"/><!-- 节点2所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="192.168.2.11"/><PARAM name="sshIp1" value="10.0.2.11"/></DEVICE></DEVICELIST>
</ROOT>

📕初始化安装环境

[root@localhost script]# python3.6 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml  
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Are you sure you want to create trust for root (yes/no)?yes
Please enter password for root
Please enter password for current user[root].
Password: 
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Successfully created the local key files.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Distributing trust keys file to all node successfully.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.
Successfully created SSH trust for the root permission user.
Setting host ip env
Successfully set host ip env.
Distributing package.
Begin to distribute package to tool path.
Successfully distribute package to tool path.
Begin to distribute package to package path.
Successfully distribute package to package path.
Successfully distributed package.
Are you sure you want to create the user[omm] and create trust for it (yes/no)? yes
Preparing SSH service.
Successfully prepared SSH service.
Installing the tools in the cluster.
Successfully installed the tools in the cluster.
Checking hostname mapping.
Successfully checked hostname mapping.
Creating SSH trust for [omm] user.
Please enter password for current user[omm].
Password: 
Checking network information.
All nodes in the network are Normal.
Successfully checked network information.
Creating SSH trust.
Creating the local key file.
Successfully created the local key files.
Appending local ID to authorized_keys.
Successfully appended local ID to authorized_keys.
Updating the known_hosts file.
Successfully updated the known_hosts file.
Appending authorized_key on the remote node.
Successfully appended authorized_key on all remote node.
Checking common authentication file content.
Successfully checked common authentication content.
Distributing SSH trust file to all node.
Distributing trust keys file to all node successfully.
Successfully distributed SSH trust file to all node.
Verifying SSH trust on all hosts.
Successfully verified SSH trust on all hosts.
Successfully created SSH trust.
Successfully created SSH trust for [omm] user.
Checking OS software.
Successfully check os software.
Checking OS version.
Successfully checked OS version.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/opt/software/openGauss/script/gs_checkos -i A -h bigdata01,bigdata02 --detail".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.
[root@localhost script]# 

📕执行安装

[root@localhost script]# su - omm
上一次登录:四 411 15:46:24 CST 2024
[omm@bigdata01 ~]$ gs_install -X /opt/software/openGauss/cluster_config.xml
Parsing the configuration file.
Successfully checked gs_uninstall on every node.
Check preinstall on every node.
Successfully checked preinstall on every node.
Creating the backup directory.
Successfully created the backup directory.
begin deploy..
Installing the cluster.
begin prepare Install Cluster..
Checking the installation environment on all nodes.
begin install Cluster..
Installing applications on all nodes.
Successfully installed APP.
begin init Instance..
encrypt cipher and rand files for database.
Please enter password for database:
Please repeat for database:
begin to create CA cert files
The sslcert will be generated in /home/opengauss/app/share/sslcert/om
NO cm_server instance, no need to create CA for CM.
Non-dss_ssl_enable, no need to create CA for DSS
Cluster installation is completed.
Configuring.
Deleting instances from all nodes.
Successfully deleted instances from all nodes.
Checking node configuration on all nodes.
Initializing instances on all nodes.
Updating instance configuration on all nodes.
Check consistence of memCheck and coresCheck on database nodes.
Successful check consistence of memCheck and coresCheck on all nodes.
Configuring pg_hba on all nodes.
Configuration is completed.The cluster status is Normal.
Successfully started cluster.
Successfully installed application.
end deploy..
[omm@bigdata01 ~]$ 

📕验证

数据库安装完成后,会默认生成名称为postgres的数据库

[omm@bigdata01 ~]$ gs_om -t status
-----------------------------------------------------------------------cluster_name    : openGaussDB
cluster_state   : Normal
redistributing  : No-----------------------------------------------------------------------
[omm@bigdata01 ~]$ 
[omm@bigdata01 ~]$ gsql -d postgres -p 15400
gsql ((openGauss 5.1.0 build b5a8d5b0) compiled at 2023-09-28 00:09:57 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.openGauss=# help
You are using gsql, the command-line interface to gaussdb.
Type:  \copyright for distribution terms\h for help with SQL commands\? for help with gsql commands\g or terminate with semicolon to execute query\q to quit
openGauss=# \h
Available help:ABORT                             ALTER TEXT SEARCH CONFIGURATION   CREATE NODE GROUP                 DROP DIRECTORY                    EXPLAINALTER APP WORKLOAD GROUP          ALTER TEXT SEARCH DICTIONARY      CREATE OPERATOR                   DROP EVENT                        FETCHALTER APP WORKLOAD GROUP MAPPING  ALTER TRIGGER                     CREATE PACKAGE                    DROP EVENT TRIGGER                GRANTALTER AUDIT POLICY                ALTER TYPE                        CREATE PACKAGE BODY               DROP EXTENSION                    INSERTALTER DATA SOURCE                 ALTER USER                        CREATE PROCEDURE                  DROP FOREIGN TABLE                LOCKALTER DATABASE                    ALTER VIEW                        CREATE PUBLICATION                DROP FUNCTION                     MERGEALTER DEFAULT PRIVILEGES          ALTER WORKLOAD GROUP              CREATE RESOURCE LABEL             DROP GLOBAL CONFIGURATION         MOVEALTER DIRECTORY                   ANALYSE                           CREATE RESOURCE POOL              DROP GROUP                        PREDICT BYALTER EVENT                       ANALYZE                           CREATE ROLE                       DROP INDEX                        PREPAREALTER EVENT TRIGGER               ANONYMOUS BLOCK                   CREATE ROW LEVEL SECURITY POLICY  DROP MASKING POLICY               PREPARE TRANSACTIONALTER EXTENSION                   ARCHIVE SNAPSHOT                  CREATE SCHEMA                     DROP MATERIALIZED VIEW            PUBLISH SNAPSHOTALTER FOREIGN TABLE               BEGIN                             CREATE SEQUENCE                   DROP MODEL                        PURGEALTER FOREIGN TABLE FOR HDFS      CALL                              CREATE SERVER                     DROP NODE                         PURGE SNAPSHOTALTER FUNCTION                    CHECKPOINT                        CREATE SNAPSHOT AS                DROP NODE GROUP                   REASSIGN OWNEDALTER GLOBAL CONFIGURATION        CLEAN CONNECTION                  CREATE SNAPSHOT FROM              DROP OPERATOR                     REFRESH MATERIALIZED VIEWALTER GROUP                       CLOSE                             CREATE SUBSCRIPTION               DROP OWNED                        REINDEXALTER INDEX                       CLUSTER                           CREATE SYNONYM                    DROP PACKAGE                      REPLACEALTER LARGE OBJECT                COMMENT                           CREATE TABLE                      DROP PACKAGE BODY                 RESETALTER MASKING POLICY              COMMIT                            CREATE TABLE AS                   DROP PROCEDURE                    REVOKEALTER MATERIALIZED VIEW           COMMIT PREPARED                   CREATE TABLE PARTITION            DROP PUBLICATION                  ROLLBACKALTER NODE                        COPY                              CREATE TABLE SUBPARTITION         DROP RESOURCE LABEL               ROLLBACK PREPAREDALTER NODE GROUP                  CREATE APP WORKLOAD GROUP         CREATE TABLESPACE                 DROP RESOURCE POOL                SAMPLE SNAPSHOTALTER OPERATOR                    CREATE APP WORKLOAD GROUP MAPPING CREATE TEXT SEARCH CONFIGURATION  DROP ROLE                         SAVEPOINTALTER PACKAGE                     CREATE AUDIT POLICY               CREATE TEXT SEARCH DICTIONARY     DROP ROW LEVEL SECURITY POLICY    SELECTALTER PROCEDURE                   CREATE BARRIER                    CREATE TRIGGER                    DROP SCHEMA                       SELECT INTOALTER PUBLICATION                 CREATE CLIENT MASTER KEY          CREATE TYPE                       DROP SEQUENCE                     SETALTER RESOURCE LABEL              CREATE COLUMN ENCRYPTION KEY      CREATE USER                       DROP SERVER                       SET CONSTRAINTSALTER RESOURCE POOL               CREATE DATA SOURCE                CREATE VIEW                       DROP SUBSCRIPTION                 SET ROLEALTER ROLE                        CREATE DATABASE                   CREATE WEAK PASSWORD DICTIONARY   DROP SYNONYM                      SET SESSION AUTHORIZATIONALTER ROW LEVEL SECURITY POLICY   CREATE DIRECTORY                  CREATE WORKLOAD GROUP             DROP TABLE                        SET TRANSACTIONALTER SCHEMA                      CREATE EVENT                      CURSOR                            DROP TABLESPACE                   SHOWALTER SEQUENCE                    CREATE EVENT TRIGGER              DEALLOCATE                        DROP TEXT SEARCH CONFIGURATION    SHOW EVENTSALTER SERVER                      CREATE EXTENSION                  DECLARE                           DROP TEXT SEARCH DICTIONARY       START TRANSACTIONALTER SESSION                     CREATE FOREIGN TABLE              DELETE                            DROP TRIGGER                      TIMECAPSULE TABLEALTER SUBSCRIPTION                CREATE FUNCTION                   DO                                DROP TYPE                         TRUNCATEALTER SYNONYM                     CREATE GROUP                      DROP APP WORKLOAD GROUP           DROP USER                         UPDATEALTER SYSTEM KILL SESSION         CREATE INDEX                      DROP APP WORKLOAD GROUP MAPPING   DROP VIEW                         VACUUMALTER SYSTEM SET                  CREATE LANGUAGE                   DROP AUDIT POLICY                 DROP WEAK PASSWORD DICTIONARY     VALUESALTER TABLE                       CREATE MASKING POLICY             DROP CLIENT MASTER KEY            DROP WORKLOAD GROUP               ALTER TABLE PARTITION             CREATE MATERIALIZED VIEW          DROP COLUMN ENCRYPTION KEY        END                               ALTER TABLE SUBPARTITION          CREATE MODEL                      DROP DATA SOURCE                  EXECUTE                           ALTER TABLESPACE                  CREATE NODE                       DROP DATABASE                     EXECUTE DIRECT                    
openGauss=# 

📚第三章 安装总结

  • 安装5.0.1快要成功的时候,业务人员说应该安装5.1.0,好在安装步骤都一样,只要替换一下安装包即可
  • 安装5.0.1最大的坑就是环境必须是python3.6,但是5.1.0版本,就没这个限制了
    在这里插入图片描述
    在这里插入图片描述
  • 安装过程还有就是其它一些软件安装,除了官网提到的bzip2,还有expect等,根据错误提示缺啥就安装啥即可

⁉️问题记录

❓问题一:执行gs_preinstall报错:Python 解释器在编译时未使用 -enable-shared 选项

[root@localhost openGauss]# cd /opt/software/openGauss/script
[root@localhost script]# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
Traceback (most recent call last):File "./gs_preinstall", line 32, in <module>check_python_compiler_option()File "/opt/software/openGauss/script/gspylib/common/CheckPythonVersion.py", line 39, in check_python_compiler_optioncarry the -enable-shared parameters")
Exception: [GAUSS-52200] : When compiling python,             carry the -enable-shared parameters
[root@localhost script]# 

❗解决方式:重新安装python,放开–enable-shared

./configure --enable-optimizations --enable-shared
make
make intall

❓问题二:No module named ‘_ctypes’

[root@localhost script]# /usr/local/bin/python3.7 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
Traceback (most recent call last):File "./gs_preinstall", line 48, in <module>from gspylib.common.Common import DefaultValueFile "/opt/software/openGauss/script/gspylib/common/Common.py", line 20, in <module>import ctypesFile "/usr/local/lib/python3.7/ctypes/__init__.py", line 7, in <module>from _ctypes import Union, Structure, Array
ModuleNotFoundError: No module named '_ctypes'
[root@localhost script]# 

❗解决方式:安装libffi-devel

yum install libffi-devel -y

在这里插入图片描述

make && make install

安装好libffi-devel之后,重新编译安装python之后,尝试导入import _ctypes,可以正常导入
在这里插入图片描述

❓问题三:libpython3.6m.so.1.0 未找到

[root@localhost script]# /usr/local/bin/python3.7 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
Traceback (most recent call last):File "/opt/software/openGauss/script/gspylib/common/Common.py", line 64, in <module>import psutilFile "/opt/software/openGauss/script/gspylib/common/../../../lib/psutil/__init__.py", line 102, in <module>from . import _pslinux as _psplatformFile "/opt/software/openGauss/script/gspylib/common/../../../lib/psutil/_pslinux.py", line 26, in <module>from . import _psutil_linux as cextFile "/opt/software/openGauss/script/gspylib/common/../../../lib/psutil/_psutil_linux.py", line 7, in <module>__bootstrap__()File "/opt/software/openGauss/script/gspylib/common/../../../lib/psutil/_psutil_linux.py", line 6, in __bootstrap__imp.load_dynamic(__name__,__file__)File "/usr/local/lib/python3.7/imp.py", line 342, in load_dynamicreturn _load(spec)
ImportError: /opt/software/openGauss/script/gspylib/common/../../../lib/psutil/_psutil_linux.so: cannot open shared object file: No such file or directoryDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File "./gs_preinstall", line 48, in <module>from gspylib.common.Common import DefaultValueFile "/opt/software/openGauss/script/gspylib/common/Common.py", line 98, in <module>import psutilFile "/opt/software/openGauss/script/gspylib/common/../../../lib/psutil/__init__.py", line 102, in <module>from . import _pslinux as _psplatformFile "/opt/software/openGauss/script/gspylib/common/../../../lib/psutil/_pslinux.py", line 26, in <module>from . import _psutil_linux as cext
ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
[root@localhost script]# 
[root@localhost script]# 

❗解决方式:重新安装python3.6(5.0版本只支持python3.6)

在这里插入图片描述

❓问题四:Failed to read clusterName. Error:

[root@localhost script]# python3.6 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml  
[GAUSS-50204] : Failed to read clusterName. Error: 

❗解决方式:配置不对

配置文件name属性被改了,还原为clusterName即可,value属性是可以改的
在这里插入图片描述

❓问题五: Failed to obtain local instance information

[root@localhost script]# python3.6 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml  
[GAUSS-51620] : Failed to obtain local instance information. It is not a host name localhost.localdomain.
[root@localhost script]# 

❗解决方式:修改主机名

根据报错修改为对应的主机名,和配置文件保持一致:hostnamectl set-hostname 要修改的名字

[root@localhost script]# python3.6 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml  
[GAUSS-51620] : Failed to obtain local instance information. It is not a host name localhost.localdomain.
[root@localhost script]# 
[root@localhost script]# 
[root@localhost script]# 
[root@localhost script]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.2.10 bigdata01
192.168.2.11 bigdata02
192.168.2.12 bigdata03
[root@localhost script]# hostname
localhost.localdomain
[root@localhost script]# hostnamectl set-hostname bigdata01
[root@localhost script]# 
[root@localhost script]# 
[root@localhost script]# hostname
bigdata01
[root@localhost script]# 

❓问题六:[GAUSS-51405] : You need to install software:expect

直接根据报错进行软件安装

[root@localhost script]# python3.6 ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml  
[GAUSS-51405] : You need to install software:expect[root@localhost script]# 
[root@localhost script]# yum install -y expect

在这里插入图片描述

❓问题七:[FAILURE] bigdata02:[GAUSS-51251] : The /home/opengauss/app cannot be a root user group or a lin

根据报错进行修改,更改文件所属用户

❓问题八:[GAUSS-51405] : You need to install software:[‘bzip2’]

直接根据报错进行软件安装: yum install -y bzip2

[SUCCESS] bigdata01:
[FAILURE] bigdata02:
[GAUSS-51405] : You need to install software:['bzip2']

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【算法刷题 | 回溯思想 01】4.11(回溯算法理论、组合、组合总和 ||| )

文章目录 回溯1.回溯算法理论基础1.1什么是回溯法&#xff1f;1.2回溯法的效率1.3回溯法解决的问题1.4如何理解回溯法&#xff1f;1.5回溯法模板 2.组合2.1问题2.2解法一&#xff1a;暴力解法&#xff08;循环次数不确定&#xff09;2.3解法二&#xff1a;回溯2.3.1回溯思路&am…

《web应用技术》第三次课后练习

实验目的&#xff1a; 1、springboot入门程序撰写并启动 2、使用postman练习参数的获取。 参考&#xff1a;Day04-10. Web入门-SpringBootWeb-快速入门_哔哩哔哩_bilibili

海外媒体发稿:新加坡 Asia One VS新加坡sg雅虎

海外媒体发稿&#xff1a;新加坡 Asia One VS新加坡sg雅虎 新加坡&#xff1a;雅虎 官网&#xff1a;sy.yahoo.com 官网&#xff1a;asiaone.com/lite 亚洲第一站。是 新加坡的新闻和生活方式网站和新闻聚合器。它是 新加坡第一个纯数字 内容平台&#xff0c;主要为新加坡、…

【C++学习】C++11新特性(第三节)——可变参数模板, lambda表达式与function包装器

文章目录 ♫文章前言♫一.可变参数模板♫1.什么是可变参数模板♫2.获取可变参数模板里参数包的方法♫3.可变参数模板在容器中的引用 ♫二. lambda表达式1. lambda表达式的由来♫2. lambda表达式♫1.lambda表达式语法♫2. 捕获列表说明 ♫3.函数对象与lambda表达式 ♫三.包装器♫…

智慧安防系统EasyCVR视频汇聚平台接入大华设备无法语音对讲的原因排查与解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台支持7*24小时实时高清视频监控&#xff0c;能同时播放多路监控视频流&#xff0c;视频画面1、4、9、16个可选&#xff0c;支持自定义视频轮播。EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标…

Python爬虫怎么挣钱?6个Python爬虫赚钱方式,搞搞副业不是问题

1.最典型的就是找爬虫外包活儿 网络爬虫最通常的的挣钱方式通过外包网站&#xff0c;做中小规模的爬虫项目&#xff0c;向甲方提供数据抓取&#xff0c;数据结构化&#xff0c;数据清洗等服务。新入行的程序员大多都会先尝试这个方向&#xff0c;直接靠技术手段挣钱&#xff0…

【数据库】GROUP BY 详解、示例、注意事项

一、基本介绍 GROUP BY 语句在 SQL 中用于将来自数据库表的记录分组&#xff0c;以便可以对每个组执行聚合函数&#xff08;如 COUNT(), MAX(), MIN(), SUM(), AVG() 等&#xff09;。使用 GROUP BY 时&#xff0c;数据库会根据一个或多个列的值将结果集分为多个分组&#xff…

【Linux学习】初识Linux指令(一)

文章目录 1.指令操作与图形化界面操作1.什么是指令操作&#xff0c;什么是图形化界面操作&#xff1f; 2.Linux下基本指令1.Linux下的复制粘贴2.Linux两个who命令3.补充知识4.pwd指令5. ls 指令6.cd 指令1.目录树2.相对路径与绝对路劲3.常用cd指令 7.tree指令8. touch指令9.sta…

产品经理常用UML图之「用例图」,附7张优质实例图!

用例图是产品经理应该会画的图之一&#xff0c;它是需求分析的产物&#xff0c;借助用例图&#xff0c;参与者以可视化的方式对问题进行探讨&#xff0c;能够减少大量沟通上的障碍。接下来&#xff0c;我们一起探讨和学习一下产品经理常用的UML用例图。 一、用例图简介 用例图…

数据可视化高级技术Echarts(折线图)

目录 一、什么是折线图 二、如何实现 1.基本折线图 2.如何变得平滑只需要定义&#xff1a; smooth 3.如何定义线条的样式 color&#xff1a;设置线的颜色 width&#xff1a;设置线宽 type&#xff1a;设置线的类型 4.如何定义节点样式 symbol symbolSize&#xff1a…

2024年【T电梯修理】考试总结及T电梯修理考试技巧

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 T电梯修理考试总结考前必练&#xff01;安全生产模拟考试一点通每个月更新T电梯修理考试技巧题目及答案&#xff01;多做几遍&#xff0c;其实通过T电梯修理试题及解析很简单。 1、【多选题】修理工陶、陈&#xff0c…

在vue和 js 、ts 数据中使用 vue-i18n,切换语言环境时,标签文本实时变化

我的项目需要显示两种语言(中文和英文)&#xff0c;并且我想要切换语言时&#xff0c;页面语言环境会随之改变&#xff0c;目前发现&#xff0c;只能在vue中使用$t(‘’)的方式使用&#xff0c;但是这种方式只能在vue中使用&#xff0c;而我的菜单文件是定义在js中&#xff0c;…

neo4j使用详解(十六、集成Kerberos认证(Java/c#)——最全参考)

Neo4j系列导航&#xff1a; neo4j安装及简单实践 cypher语法基础 cypher插入语法 cypher插入语法 cypher查询语法 cypher通用语法 cypher函数语法 neo4j索引及调优 1.简介 Kerberos是一种网络身份验证协议&#xff0c;它允许网络节点在网络上证明其身份。它通过使用密钥分发中…

企业如何使用SNP Glue将SAP与Snowflake集成?

SNP Glue是SNP的集成技术&#xff0c;适用于任何云平台。它最初是围绕SAP和Hadoop构建的&#xff0c;现在已经发展为一个集成平台&#xff0c;虽然它仍然非常专注SAP&#xff0c;但可以将几乎任何数据源与任何数据目标集成。 我们客户非常感兴趣的数据目标之一是Snowflake。Sno…

uniapp 小程序获取WiFi列表

<template><view ><button click"getWifiList">获取WiFi列表</button><scroll-view:scroll-top"scrollTop"scroll-yclass"content-pop"><viewclass"itemInfo"v-for"(item, index) in wifiList&…

21. 【Android教程】评分条 RatingBar

本节将继续学习一个和进度有关的控件&#xff1a;RatingBar &#xff0c;在 Android 中 RatingBar 是一个可以支持用户打分的 UI 控件&#xff0c;相比 ProgressBar 而言&#xff0c;RatingBar 不仅仅可以用来展示同时还可以接收用户的输入操作&#xff1b;而相比 SeekBar&…

【Java面试题】MySQL上篇(索引)

文章目录 索引1.索引的分类&#xff1f;2.B树和B树的区别&#xff1f;2.1B树2.2B树 3.为什么使用索引会加快查询&#xff1f;4.创建索引的注意点&#xff1f;5.索引在哪些情况下会失效&#xff1f;6.聚簇索引和非聚簇索引的区别&#xff1f;7.回表查询是什么&#xff1f;8.什么…

flutter组件_AlertDialog

官方说明&#xff1a;A Material Design alert dialog. 翻译&#xff1a;一个材料设计警告对话框。 作者释义&#xff1a;显示弹窗&#xff0c;类似于element ui中的Dialog组件。 AlertDialog的定义 const AlertDialog({super.key,this.icon,this.iconPadding,this.iconColor,t…

IO_DAY7

1:实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复都是没有问题的 终端A&#xff1a; #include<myhead.h> int main(int argc, char…

【LeetCode刷题笔记】LeetCode 1365.有多少小于当前数字的数字

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…