PostgreSQL 安装部署系列:使用YUM 方式在Centos 7.9 安装指定 PostgreSQL -15版本数据库
一、前言
千里之行始于足下,想学习一门数据库,首先要从安装部署开始,先拥有一套属于自己的学习测试库。为了更好的学习该数据库,可以选择一个在企业界使用率比较普及的操作系统,选择稳定版本的操作系统;如果不是为了研究数据库各版本软件差异,不是为了钻研最新版本数据库的新特性,建议选择一款比较新且稳定成熟的数据库版本软件。
PostGreSQL作为一款优秀的开源数据库,在国内外广受欢迎,被用于很多行业,在国内外也有很多的PG fans。
PostGreSQL安装的方式有多种,比如在Linux或MAC操作系统上,可以选择yum、二进制、源码方式安装。
相对于Windows操作系统,PostGreSQL更多安装在Linux等操作系统上,所以对于Windows如何安装PostGreSQL不在本系列讨论范围内。
作为PostGreSQL安装部署系列篇,本次讲解如何在Linux上使用YUM来安装,本次选择采用Centos 7.9操作系统来验证。
接下来,安装部署,走起。
二、前期准备
2.1 配置YUM源
如果你的Linux能联网,建议选择配置一个YUM源,比如选择使用比较普遍的阿里yum源。如何配置YUM源,大家可以搜下网络介绍,本次不作为分享内容,大家可以自行搜索部署。
2.2 下载软件
登录PostGreSQL官网地址:https://www.postgresql.org/download/,进入到如下界面。
参照上图,选择对应的操作系统,本次选择Linux,然后选择对应的Linux的发行版,本次选择Red Hat/Rocky/AlmaLinux发行版,如下所示。
然后进入到https://www.postgresql.org/download/linux/redhat/对应的页面,然后选择相应的数据库版本、对应的操作系统版本、对应的架构模式,本次选择PostGreSQL 15版本,如下所示。
三、安装部署
根据https://www.postgresql.org/download/linux/redhat/所填写内容,拷贝相应命令分别执行。
3.1 安装仓库RPM包
# 使用root用户执行如下命令:
[root@host19c-node1 ~]# sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm-- 上述命令执行结果如下:
pgdg-redhat-repo-latest.noarch.rpm | 9.0 kB 00:00:00
Examining /var/tmp/yum-root-CYlXMy/pgdg-redhat-repo-latest.noarch.rpm: pgdg-redhat-repo-42.0-35PGDG.noarch
Marking /var/tmp/yum-root-CYlXMy/pgdg-redhat-repo-latest.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package pgdg-redhat-repo.noarch 0:42.0-35PGDG will be installed
--> Finished Dependency ResolutionDependencies Resolved=============================================================================================================================================================================================================================================Package Arch Version Repository Size
=============================================================================================================================================================================================================================================
Installing:pgdg-redhat-repo noarch 42.0-35PGDG /pgdg-redhat-repo-latest.noarch 13 kTransaction Summary
=============================================================================================================================================================================================================================================
Install 1 PackageTotal size: 13 k
Installed size: 13 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
R-java-3.6.0-1.el7.x86_64 has missing requires of java-headless
ant-1.9.4-2.el7.noarch has missing requires of java-devel >= ('0', '1.5.0', None)
rlwrap-0.43-2.el7.x86_64 has missing requires of /usr/bin/python3.6Installing : pgdg-redhat-repo-42.0-35PGDG.noarch 1/1 Verifying : pgdg-redhat-repo-42.0-35PGDG.noarch 1/1 Installed:pgdg-redhat-repo.noarch 0:42.0-35PGDG Complete!
上述命令执行完毕后,可以使用yum search postgresql命令来查看安装了哪些PostGreSQL数据库相关软件。
# 使用yum search postgresql命令查看相关数据库软件
[root@host19c-node1 ~]# yum search postgresql
-- 上述命令执行结果如下:
pgdg-common/7/x86_64/signature | 198 B 00:00:00
pgdg-common/7/x86_64/signature | 2.9 kB 00:00:00 !!!
pgdg11/7/x86_64/signature | 198 B 00:00:00
pgdg11/7/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg12/7/x86_64/signature | 198 B 00:00:00
pgdg12/7/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg13/7/x86_64/signature | 198 B 00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:Userid : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8Package : pgdg-redhat-repo-42.0-35PGDG.noarch (installed)From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Is this ok [y/N]: y
pgdg13/7/x86_64/signature | 3.6 kB 00:00:38 !!!
pgdg14/7/x86_64/signature | 198 B 00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:Userid : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8Package : pgdg-redhat-repo-42.0-35PGDG.noarch (installed)From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Is this ok [y/N]: N
pgdg14/7/x86_64/signature | 3.6 kB 00:00:12 !!!
https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-7-x86_64/repodata/repomd.xml: [Errno -1] Gpg Keys not imported, cannot verify repomd.xml for repo pgdg14
Trying other mirror.One of the configured repositories failed (PostgreSQL 14 for RHEL / CentOS 7 - x86_64),and yum doesn't have enough cached data to continue. At this point the onlysafe thing yum can do is fail. There are a few ways to work "fix" this:1. Contact the upstream for the repository and get them to fix the problem.2. Reconfigure the baseurl/etc. for the repository, to point to a workingupstream. This is most often useful if you are using a newerdistribution release than is supported by the repository (and thepackages for the previous distribution release still work).3. Run the command with the repository temporarily disabledyum --disablerepo=pgdg14 ...4. Disable the repository permanently, so yum won't use it by default. Yumwill then just ignore the repository until you permanently enable itagain or use --enablerepo for temporary usage:yum-config-manager --disable pgdg14orsubscription-manager repos --disable=pgdg145. Configure the failing repository to be skipped, if it is unavailable.Note that yum will try to contact the repo. when it runs most commands,so will have to try and fail each time (and thus. yum will be be muchslower). If it is a very temporary problem though, this is often a nicecompromise:yum-config-manager --save --setopt=pgdg14.skip_if_unavailable=truefailure: repodata/repomd.xml from pgdg14: [Errno 256] No more mirrors to try.
https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-7-x86_64/repodata/repomd.xml: [Errno -1] Gpg Keys not imported, cannot verify repomd.xml for repo pgdg14
可以发现在执行yum search postgresql根据提示输入N后,会有failure: repodata/repomd.xml from pgdg14: [Errno 256] No more mirrors to try的报错信息。
根据上述报错查询了网上信息,根据https://www.postgresql.org/message-id/C7C14870-90FE-40B8-93CF-1068B1D43F78%40contoso.com这篇文章内容显示是遇到了一个bug,详细信息如下:
3.2 安装数据库
接下来,安装PostGreSQL 15版本数据库,详细信息如下:
# 使用root用户执行yum install -y postgresql15-server命令。
[root@host19c-node1 ~]# sudo yum install -y postgresql15-server
-- 上述命令执行结果如下:
base | 3.6 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 2.9 kB 00:00:00
pgdg-common/7/x86_64/signature | 198 B 00:00:00
pgdg-common/7/x86_64/signature | 2.9 kB 00:00:00 !!!
pgdg11/7/x86_64/signature | 198 B 00:00:00
pgdg11/7/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg12/7/x86_64/signature | 198 B 00:00:00
pgdg12/7/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg13/7/x86_64/signature | 198 B 00:00:00
pgdg13/7/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg14/7/x86_64/signature | 198 B 00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:Userid : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8Package : pgdg-redhat-repo-42.0-35PGDG.noarch (installed)From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg14/7/x86_64/signature | 3.6 kB 00:00:00 !!!
pgdg15/7/x86_64/signature | 198 B 00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:Userid : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8Package : pgdg-redhat-repo-42.0-35PGDG.noarch (installed)From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
pgdg15/7/x86_64/signature | 3.6 kB 00:00:00 !!!
updates | 2.9 kB 00:00:00
(1/11): pgdg12/7/x86_64/group_gz | 245 B 00:00:01
(2/11): pgdg13/7/x86_64/group_gz | 246 B 00:00:00
(3/11): pgdg11/7/x86_64/group_gz | 245 B 00:00:01
(4/11): pgdg12/7/x86_64/primary_db | 416 kB 00:00:01
(5/11): pgdg14/7/x86_64/primary_db | 249 kB 00:00:00
(6/11): pgdg11/7/x86_64/primary_db | 524 kB 00:00:02
(7/11): pgdg14/7/x86_64/group_gz | 244 B 00:00:00
(8/11): pgdg15/7/x86_64/group_gz | 246 B 00:00:00
(9/11): pgdg13/7/x86_64/primary_db | 337 kB 00:00:01
(10/11): pgdg15/7/x86_64/primary_db | 156 kB 00:00:00
(11/11): pgdg-common/7/x86_64/primary_db | 203 kB 00:00:02
Resolving Dependencies
--> Running transaction check
---> Package postgresql15-server.x86_64 0:15.5-1PGDG.rhel7 will be installed
--> Processing Dependency: postgresql15-libs(x86-64) = 15.5-1PGDG.rhel7 for package: postgresql15-server-15.5-1PGDG.rhel7.x86_64
--> Processing Dependency: postgresql15(x86-64) = 15.5-1PGDG.rhel7 for package: postgresql15-server-15.5-1PGDG.rhel7.x86_64
--> Processing Dependency: libpq.so.5()(64bit) for package: postgresql15-server-15.5-1PGDG.rhel7.x86_64
--> Running transaction check
---> Package postgresql15.x86_64 0:15.5-1PGDG.rhel7 will be installed
---> Package postgresql15-libs.x86_64 0:15.5-1PGDG.rhel7 will be installed
--> Finished Dependency ResolutionDependencies Resolved=============================================================================================================================================================================================================================================Package Arch Version Repository Size
=============================================================================================================================================================================================================================================
Installing:postgresql15-server x86_64 15.5-1PGDG.rhel7 pgdg15 5.8 M
Installing for dependencies:postgresql15 x86_64 15.5-1PGDG.rhel7 pgdg15 1.6 Mpostgresql15-libs x86_64 15.5-1PGDG.rhel7 pgdg15 284 kTransaction Summary
=============================================================================================================================================================================================================================================
Install 1 Package (+2 Dependent packages)Total download size: 7.7 M
Installed size: 34 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/pgdg15/packages/postgresql15-libs-15.5-1PGDG.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY ] 0.0 B/s | 112 kB --:--:-- ETA
Public key for postgresql15-libs-15.5-1PGDG.rhel7.x86_64.rpm is not installed
(1/3): postgresql15-libs-15.5-1PGDG.rhel7.x86_64.rpm | 284 kB 00:00:01
(2/3): postgresql15-server-15.5-1PGDG.rhel7.x86_64.rpm | 5.8 MB 00:00:01
(3/3): postgresql15-15.5-1PGDG.rhel7.x86_64.rpm | 1.6 MB 00:00:05
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 1.3 MB/s | 7.7 MB 00:00:05
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Importing GPG key 0x442DF0F8:Userid : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"Fingerprint: 68c9 e2b9 1a37 d136 fe74 d176 1f16 d2e1 442d f0f8Package : pgdg-redhat-repo-42.0-35PGDG.noarch (installed)From : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : postgresql15-libs-15.5-1PGDG.rhel7.x86_64 1/3 Installing : postgresql15-15.5-1PGDG.rhel7.x86_64 2/3 Installing : postgresql15-server-15.5-1PGDG.rhel7.x86_64 3/3 Verifying : postgresql15-15.5-1PGDG.rhel7.x86_64 1/3 Verifying : postgresql15-server-15.5-1PGDG.rhel7.x86_64 2/3 Verifying : postgresql15-libs-15.5-1PGDG.rhel7.x86_64 3/3 Installed:postgresql15-server.x86_64 0:15.5-1PGDG.rhel7 Dependency Installed:postgresql15.x86_64 0:15.5-1PGDG.rhel7 postgresql15-libs.x86_64 0:15.5-1PGDG.rhel7 Complete!
3.3 初始化数据库
执行yum install -y postgresql15-server安装数据库,可以查看到数据库的相关命令在/usr/pgsql-15/bin目录下。
[root@host19c-node1 pgsql-15]# pwd
/usr/pgsql-15
[root@host19c-node1 pgsql-15]# ls -lrt
total 12
drwxr-xr-x 2 root root 4096 Dec 27 16:03 bin
drwxr-xr-x 3 root root 4096 Dec 27 16:03 lib
drwxr-xr-x 7 root root 4096 Dec 27 16:03 share
接下来来初始化数据库,操作命令如下:
# 使用root用户执行/usr/pgsql-15/bin/postgresql-15-setup initdb
[root@host19c-node1 ~]# sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
-- 上述命令执行结果如下:
Initializing database ... OK# 可以进行如下配置设置服务器重启后数据库自启动。# 使用root用户执行systemctl enable postgresql-15
[root@host19c-node1 ~]# sudo systemctl enable postgresql-15
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-15.service to /usr/lib/systemd/system/postgresql-15.service.# 使用root用户执行systemctl start postgresql-15启动数据库
[root@host19c-node1 ~]# sudo systemctl start postgresql-15# 使用systemctl status postgresql-15命令查看数据库启动状态
[root@host19c-node1 ~]# sudo systemctl status postgresql-15
● postgresql-15.service - PostgreSQL 15 database serverLoaded: loaded (/usr/lib/systemd/system/postgresql-15.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-12-27 16:07:39 CST; 8s agoDocs: https://www.postgresql.org/docs/15/static/Process: 35602 ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)Main PID: 35609 (postmaster)Tasks: 7Memory: 15.0MCGroup: /system.slice/postgresql-15.service├─35609 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/├─35610 postgres: logger ├─35611 postgres: checkpointer ├─35612 postgres: background writer ├─35614 postgres: walwriter ├─35615 postgres: autovacuum launcher └─35616 postgres: logical replication launcher Dec 27 16:07:39 host19c-node1 systemd[1]: Starting PostgreSQL 15 database server...
Dec 27 16:07:39 host19c-node1 postmaster[35609]: 2023-12-27 16:07:39.363 CST [35609] LOG: redirecting log output to logging collector process
Dec 27 16:07:39 host19c-node1 postmaster[35609]: 2023-12-27 16:07:39.363 CST [35609] HINT: Future log output will appear in directory "log".
Dec 27 16:07:39 host19c-node1 systemd[1]: Started PostgreSQL 15 database server.
数据库初始并启动后,可以查看到数据库的默认安装路径在/var/lib/pgsql/15/目录下,相关信息如下:
[root@host19c-node1 ~]# cd /var/lib/pgsql/15/
[root@host19c-node1 15]# ll
total 8
drwx------ 2 postgres postgres 6 Nov 9 04:34 backups
drwx------ 20 postgres postgres 4096 Dec 27 16:07 data
-rw------- 1 postgres postgres 921 Dec 27 16:06 initdb.log
[root@host19c-node1 15]# ls -lrt ./data/
total 68
-rw------- 1 postgres postgres 3 Dec 27 16:06 PG_VERSION
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_twophase
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_tblspc
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_stat_tmp
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_snapshots
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_serial
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_replslot
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_notify
drwx------ 4 postgres postgres 36 Dec 27 16:06 pg_multixact
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_dynshmem
drwx------ 2 postgres postgres 6 Dec 27 16:06 pg_commit_ts
-rw------- 1 postgres postgres 29460 Dec 27 16:06 postgresql.conf
-rw------- 1 postgres postgres 88 Dec 27 16:06 postgresql.auto.conf
-rw------- 1 postgres postgres 1636 Dec 27 16:06 pg_ident.conf
-rw------- 1 postgres postgres 4577 Dec 27 16:06 pg_hba.conf
drwx------ 3 postgres postgres 60 Dec 27 16:06 pg_wal
drwx------ 2 postgres postgres 18 Dec 27 16:06 pg_xact
drwx------ 2 postgres postgres 18 Dec 27 16:06 pg_subtrans
drwx------ 5 postgres postgres 33 Dec 27 16:06 base
drwx------ 2 postgres postgres 32 Dec 27 16:07 log
-rw------- 1 postgres postgres 30 Dec 27 16:07 current_logfiles
-rw------- 1 postgres postgres 58 Dec 27 16:07 postmaster.opts
drwx------ 2 postgres postgres 6 Dec 27 16:07 pg_stat
-rw------- 1 postgres postgres 104 Dec 27 16:07 postmaster.pid
drwx------ 2 postgres postgres 4096 Dec 27 16:08 global
drwx------ 4 postgres postgres 68 Dec 27 16:12 pg_logical
四、验证测试
数据库安装后,我们来进行简单的验证测试。
使用yum安装数据库后,默认会创建postgres用户。
# 切换到postgres用户
[root@host19c-node1 ~]# su - postgres
Last login: Wed Dec 27 16:09:13 CST 2023 on pts/5
-bash-4.2$ psql
psql (15.5)
Type "help" for help.# 查看初始化后的数据库默认库和用户
postgres=# \d
Did not find any relations.
postgres=# \lList of databasesName | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +| | | | | | | postgres=CTc/postgrestemplate1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +| | | | | | | postgres=CTc/postgres
(3 rows)# 创建一个测试库
postgres=# CREATE DATABASE pg15;CREATE DATABASE
postgres=#
postgres=# \c pg15;
You are now connected to database "pg15" as user "postgres".
pg15=# CREATE TABLE pgtb (
pg15(# id SERIAL PRIMARY KEY,
pg15(# username VARCHAR(50) NOT NULL,
pg15(# email VARCHAR(100) NOT NULL UNIQUE,
pg15(# created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
pg15(# );
CREATE TABLE
pg15=#
pg15=# INSERT INTO pgtb (username, email) VALUES
pg15-# ('user1', 'user1@example.com'),
pg15-# ('user2', 'user2@example.com');INSERT 0 2
pg15=#
pg15=# select * from pgtb;id | username | email | created_at
----+----------+-------------------+----------------------------1 | user1 | user1@example.com | 2023-12-27 16:37:16.2188112 | user2 | user2@example.com | 2023-12-27 16:37:16.218811
(2 rows)pg15=#
万里长征已开启第一步,现在你已拥有了一个PG数据库,请开启你的PG学习之旅吧。
五、卸载数据库
卸载使用YUM安装的数据库也比较简单,可以采用yum remove postgresql15-server卸载安装的数据库。
[root@host19c-node1 ~]# yum remove postgresql15-server
Resolving Dependencies
--> Running transaction check
---> Package postgresql15-server.x86_64 0:15.5-1PGDG.rhel7 will be erased
--> Processing Dependency: postgresql15-server(x86-64) = 15.5-1PGDG.rhel7 for package: postgresql15-contrib-15.5-1PGDG.rhel7.x86_64
--> Running transaction check
---> Package postgresql15-contrib.x86_64 0:15.5-1PGDG.rhel7 will be erased
--> Finished Dependency ResolutionDependencies Resolved=============================================================================================================================================================================================================================================Package Arch Version Repository Size
=============================================================================================================================================================================================================================================
Removing:postgresql15-server x86_64 15.5-1PGDG.rhel7 @pgdg15 24 M
Removing for dependencies:postgresql15-contrib x86_64 15.5-1PGDG.rhel7 @pgdg15 2.5 MTransaction Summary
=============================================================================================================================================================================================================================================
Remove 1 Package (+1 Dependent package)Installed size: 27 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionErasing : postgresql15-contrib-15.5-1PGDG.rhel7.x86_64 1/2 Erasing : postgresql15-server-15.5-1PGDG.rhel7.x86_64 2/2 Verifying : postgresql15-contrib-15.5-1PGDG.rhel7.x86_64 1/2 Verifying : postgresql15-server-15.5-1PGDG.rhel7.x86_64 2/2 Removed:postgresql15-server.x86_64 0:15.5-1PGDG.rhel7 Dependency Removed:postgresql15-contrib.x86_64 0:15.5-1PGDG.rhel7 Complete!
相关文章:
PostgreSQL 安装部署系列:使用YUM 方式在Centos 7.9 安装指定 PostgreSQL -15版本数据库
一、前言 千里之行始于足下,想学习一门数据库,首先要从安装部署开始,先拥有一套属于自己的学习测试库。为了更好的学习该数据库,可以选择一个在企业界使用率比较普及的操作系统,选择稳定版本的操作系统;如果…...
知识图谱8:深度学习各种小模型
1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具,适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言…...
为什么 JavaScript 中的 `new` 运算符报错?
在 JavaScript 中,new 运算符通常用于创建一个新对象并调用构造函数来初始化对象。然而,new 运算符可能会引发一些错误,通常是由于以下原因导致的: 构造函数没有正确的定义: 如果使用 new 运算符调用的函数没有正确地定…...
Tomcat,javaweb, servlet , springBoot
在server.xml里配置服务器 <scope>provided</scope>打包的时候,这个jar包不会被打进去,因为tomcat已将封装了这个jar包,没必要要这个...
使用Kimi开发自己的问答应用
概述 Kimi是大家常用的一个人工智能助手,本文使用Kimi开发文档,以node作为后端,开发与一个问答系统 实现效果 Kimi简介 Kimi是由Moonshot AI开发的人工智能助手,擅长中文和英文对话。目标是帮助用户解决问题、提供信息和执行任…...
TypeScript进阶
Typescript进阶 基础知识 JavaScript 的核心特点就是灵活,但随着项目规模的增大,灵活反而增加开发者的心智负担。例如在代码中一个变量可以被赋予字符串、布尔、数字、甚至是函数,这样就充满了不确定性。而且这些不确定性可能需要在代码运行…...
jenkins邮件的配置详解
Jenkins邮件的配置涉及多个步骤和细节,以下是详细的配置指南: 一、前期准备 确定邮件服务:明确Jenkins将要使用的邮件服务,如QQ邮箱、163邮箱、公司邮箱(基于Microsoft 365或Exchange Server)等。获取SMTP配置信息:根据邮件服务类型,获取相应的SMTP服务器地址、端口号…...
小皮面板(PHPSTUDY)配置多个域名或IP
问题描述 小皮面板默认采用nginx的静态部署,按照使用nginx的习惯只需要额外添加一个server即可,但是会发现直接往配置文件里添加新的server是不生效的,小皮的官网论坛几乎已经停止维护,因此资料较少,原本也没有仔细使…...
【大语言模型】LangChain LCEL 表达式语言
【大语言模型】LangChain LCEL 表达式语言 一、简介二、LCEL的优势三、LCEL 的基本使用1、Runnable 对象 四、实战实例 一、简介 LangChain LCEL 的全称为 LangChain Expression Language 即可直译为 LangChain 表达式。 为了构造更复杂的 LLM 应用并且更为简便快捷的构造 LLM…...
Leetcode 3382. Maximum Area Rectangle With Point Constraints II
Leetcode 3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路2. 代码实现 题目链接:3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路 这一题是题目3380. Maximum Area Rectangle With Point Constraints I的进阶版&#…...
MitelMiCollab 身份绕过导致任意文件读取漏洞复现(CVE-2024-41713)
0x01 产品描述: Mitel MiCollab 是一个企业协作平台,它将各种通信工具整合到一个应用程序中,提供语音和视频通话、消息传递、状态信息、音频会议、移动支持和团队协作功能。0x02 漏洞描述: Mitel MiCollab 的 NuPoint 统一消息 (NPM) 组件中存在身份验证绕过漏洞,由于输入…...
DVWA 靶场 SQL 注入报错 Illegal mix of collations for operation ‘UNION‘ 的解决方案
在 dvwa 靶场进行联合 SQL 注入时,遇到报错 Illegal mix of collations for operation UNION报错如下图: 解决办法: 找到文件MySQL.php 大致位置在dvwaincludesDBMS 目录下 使用编辑器打开 检索$create_db 第一个就是 在{$_DVWA[ ‘db_d…...
京准电钟分享:医院网络内NTP时间同步服务器作用是什么?
京准电钟分享:医院网络内NTP时间同步服务器作用是什么? 京准电钟分享:医院网络内NTP时间同步服务器作用是什么? 时间同步技术必定将是整个大数据处理系统的重要支撑和保障。时间同步技术使数据产生与处理系统的所有节点具有全局…...
HTML DOM API
HTMLInputElement HTMLInputElement 接口提供了特定的属性和方法,用于管理 <input> 元素的选项、布局和外观。 HTMLInputElement 和 <input> 之间的关系可以理解为接口与具体元素的关系: <input> 元素: <input> 是…...
java时间处理SimpleDateFormat详解
文章目录 常用构造函数日期格式模式常见用法1. 格式化日期2. 解析日期字符串 注意事项示例扩展:指定区域和时区 SimpleDateFormat 是 Java 中用于日期和时间格式化的类,属于 java.text 包。它允许开发者将日期对象格式化为字符串,或者将字符…...
redis-stack redisSearch环境安装搭建
RedisSearch在redis许可证变更之后显得是redis中的一大特色,闲来无事学习记录一下。 尝试通过源码编译redisSearch,貌似非常费劲,所以建议使用docker或者Linux的发行包进行安装redis-stack。redis-stack是基于redis的模块化机制进行一个扩展…...
go返回多个errors
起因 有时候大家可能需要返回多个errors的场景,所以这个时候可能就会考虑如何实现、怎么实现比较好 实现 package mainimport ("errors""fmt" )func main() {errs : retErrors("hello,world")fmt.Println(errs) }func retErrors(t…...
Monkey结合appium模拟操作特定界面
目录 1. 使用 Monkey 操作特定界面(通过UI标识来限制) 2. 结合 uiautomator 或 appium 定位特定元素 步骤: 3. 使用 Monkey Appium 控制特定界面点击 4. 如何结合 Appium 与 Monkey 5. 限制 Monkey 只点击固定界面上的元素 使用 --pc…...
Ubuntu22.04深度学习环境安装【cuda+cudnn】
为了复现一篇深度学习论文,特意安装了Linux系统。前一天已经安装Linux显卡驱动,现在需要安装cuda、cudnn等。 论文代码 论文PDF 确定包版本: 根据论文提供的代码。在requirements.txt中发现cuda版本为11.7,cudnn为8.5.0,python没…...
go语言的sdk项目搭建与git 操作标签tag并推送至远程仓库
在搭建 SDK 项目并结合 Git 操作标签(Tag)时,通常会涉及项目初始化、版本管理、Git 标签的创建与管理等内容。以下是一个完整的步骤指南,帮助您搭建 SDK 项目并学习如何使用 Git 标签。 ### 1. **搭建 SDK 项目** 首先ÿ…...
从零用java实现 小红书 springboot vue uniapp (1)
前言 偶尔会用小红书发一些笔记 闲来无事 想自己实现一个小红书 正好可以学习一下 帖子 留言 im 好友 推送 等功能 下面我们就从零 开发一个小红书 后台依旧用我们的会员系统的脚手架 演示 http://120.26.95.195:8889/ 客户端我们使用uniapp 我们首先对主页进行一个分解 顶部我…...
Python爬虫——HTML中Xpath定位
Xpath是一种路径查询语言。利用一个路径表达式从html文档中找到我们需要的数据位置,进而将其写入到本地或者数据库中。 学习Xpath爬虫,我们首先学习一下python中lxml库 关于库 lxml 终端下载Xpath需要用到的模块 pip install lxml 关于HTML 超文本标…...
电脑无法识别usb设备怎么办?电脑无法识别usb解决方法
usb设备是我们常解除的外部操作以及存储设备,它可以方便用户数据传输以及操作输入。但在使用过程中,大家基本都碰到过电脑无法识别usb设备这种情况。这种情况下,我们应该怎么办呢?下面将为你介绍几种可能的原因和解决方法…...
思特奇政·企数智化产品服务平台正式发布,助力运营商政企数智能力跃迁
数字浪潮下,产业数字化进程加速发展,信息服务迎来更广阔的天地,同时也为运营商政企支撑系统提出了更高要求。12月4日,2024数字科技生态大会期间,思特奇正式发布政企数智化产品服务平台,融合应用大数据、AI等新质生产要素,构建集平台服务、精准营销、全周期运营支撑、智慧大脑于…...
【Springboot3+vue3】从零到一搭建Springboot3+vue3前后端分离项目之前端环境搭建
【Springboot3vue3】从零到一搭建Springboot3vue3前后端分离项目之前端环境搭建 2 前端环境搭建2.1 环境准备2.2 创建Vue3项目2.3 项目搭建准备2.4 安装Element Plus2.5 安装axios2.5.1 配置(创建实例,配置请求,响应拦截器)2.5.2 …...
手写Mybatis框架源码(简写)
pom文件: springboot版本:2.6.5 jdk:8 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&q…...
Flask返回中文Unicode编码(乱码)解决方案
大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...
最大值和最小值的差
最大值和最小值的差 C语言代码C 语言代码Java语言代码Python语言代码 💐The Begin💐点点关注,收藏不迷路💐 输出一个整数序列中最大的数和最小的数的差。 输入 第一行为M,表示整数个数,整数个数不会大于1…...
如何在 IntelliJ IDEA 中为 Spring Boot 应用实现热部署
文章目录 1. 引言2. 准备工作3. 添加必要的依赖4. 配置 IntelliJ IDEA4.1 启用自动编译4.2 开启热部署策略 5. 测试热部署6. 高级技巧7. 注意事项8. 总结 随着现代开发工具的进步,开发者们越来越重视提高生产力的特性。对于 Java 开发者来说,能够在不重启…...
探索 Java 中的 Bug 世界
在 Java 编程的旅程中,我们不可避免地会遇到各种 Bug。这些 Bug 可能会导致程序出现意外的行为、崩溃或者性能问题。了解 Java Bug 的类型、产生原因以及解决方法,对于提高我们的编程技能和开发出稳定可靠的应用程序至关重要。 一、Java Bug 的定义与分类…...
网站增长期怎么做/推广平台都有哪些
在centos下要剪切文件或者文件夹的时候,一般都是使用的mv命令。 例如要移动a文件到b目录下。操作如下: #假设a和b处于同一级别的目录下 mv a b/ 如果要同时移动多个文件或者文件夹呢? 其实用的也是mv命令。 具体参数用的是-t 查看帮助解…...
武汉那些网站做家教的/怎样创建自己的网站
post请求时一般参数放在body里面,选择json格式,如下所示:...
建网站成本/seo的最终是为了达到
类是一种可选(而不是必须)的设计模式,而且在 JavaScript 使用这样的 [[Prototype]] 语言中实现类是很别扭的,它会存在很多的缺点,列如:繁琐杂乱的 .prototype引用、试图调用原型链上层同名函数时的显式伪多态以及不可靠…...
地方门户网站建设/宣传推广方式有哪些
这是一个快节奏的时代,工作时讲究高效率,打游戏刷剧时网速越快越好,“从前的日色变得慢,车,马,邮件都慢”听起来十分的美好,但是在当下社会,如果交通工具、沟通方式失去了快这个优点…...
网站浮动广告怎么做/北京seo管理
1、CPU1.1、vmstate1.2 、top1.3、sar2、内存2.1、free3、IO3.1、iostat4、网络4.1 netstate 1、CPU1.1、vmstate用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况r(procs)b(procs)swpd(memory)free(memory)buff(memory)cache(memory)si(s…...
专业广州网站设计/安卓aso优化工具
python在ros中订阅雷达数据并可视化处理 文章目录python在ros中订阅雷达数据并可视化处理参考教程:预设条件:图片:程序:接着上一次的博客,我可视化激光雷达的数据还是整好了,记录一下吧,国内现成…...