3、在 CentOS 8 系统上安装 PostgreSQL 15.4

PostgreSQL,作为一款备受欢迎的开源关系数据库管理系统(RDBMS),已经存在了三十多年的历史。它提供了SQL语言支持,用于管理数据库和执行CRUD操作(创建、读取、更新、删除)。

由于其卓越的健壮性、灵活性和卓越性能,PostgreSQL赢得了广泛的声誉,成为众多Web网站和数据分析应用软件的首选数据存储解决方案。全球许多知名公司,如Spotify、Instagram、Trivago、Uber和Netflix等,都在广泛采用PostgreSQL。

CentOS 8/RHEL 8上正式维护的模块化存储库的PostgreSQL版本为13、12、10和9.6,我们将添加PostgreSQL Yum Repository,它包含所有最新版本。

其实PostgreSQL项目为最常见的发行版提供了所有支持版本的软件包存储库,支持所有Red Hat系列,如CentOS、Fedora、Scientific Linux、Oracle Linux和Red Hat Enterprise Linux。

目前,PostgreSQL的主流稳定版本是15版本。在本文中,我们将详细介绍在 CentOS 8 系统上安装PostgreSQL 15 版本的过程。

要在 CentOS 8 系统上安装PostgreSQL 15.4,我们可以按照以下步骤进行操作:

  1. 打开终端:可以通过点击"应用程序"菜单,然后搜索"终端"来打开终端,或者使用 Xshell 远程连接到CentOS 8 服务器。

  2. PostgreSQL在Appstream存储库中有不同版本。我们可以通过使用dnf软件包管理器启用首选软件包来进行选择。

要列出PostgreSQL的可用模块,请运行以下命令:

# dnf module list postgresql
[root@pgserver ~]# dnf module list postgresql
上次元数据过期检查:0:43:44 前,执行于 2023年10月09日 星期一 13时22分39秒。
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
Name                  Stream           Profiles                     Summary                                      
postgresql            9.6              client, server [d]           PostgreSQL server and client module          
postgresql            10 [d]           client, server [d]           PostgreSQL server and client module          
postgresql            12               client, server [d]           PostgreSQL server and client module          
postgresql            13               client, server [d]           PostgreSQL server and client module          提示:[d]默认,[e]已启用,[x]已禁用,[i]已安装
[root@pgserver ~]# 

在这里插入图片描述

从列出Postgresql的模块命令的输出中,输出表明可以从AppStream存储库中下载四个版本:分别是版本9.6、10、12、13。我们还可以看到默认版本为标记所指示的Postgresql 10[d]。

如果要安装默认的 Postgresql 10 ,可以直接通过运行以下命令来安装:

# dnf install postgresql-server

但是如果要安装PostgreSQL 15,步骤会有所不同。

第一步:添加PostgreSQL Yum存储库

Yum存储库是专门为 CentOS 和 RHEL 系列的Linux发行版提供支持的。

一旦成功添加,该存储库将在整个受支持的 PostgreSQL 版本的生命周期内,为我们的服务器系统提供自动更新的PostgreSQL软件包。

要完成此步骤,我们需要执行以下详细的操作,以将 PostgreSQL 软件包的存储库添加到我们的CentOS/RHEL 8 服务器中:

# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
[root@pgserver ~]# sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
上次元数据过期检查:1:04:22 前,执行于 2023年10月09日 星期一 13时22分39秒。
pgdg-redhat-repo-latest.noarch.rpm                                                                                    8.3 kB/s |  13 kB     00:01    
依赖关系解决。
======================================================================================================================================================软件包                                  架构                          版本                                 仓库                                 大小
======================================================================================================================================================
安装:pgdg-redhat-repo                        noarch                        42.0-35PGDG                          @commandline                         13 k事务概要
======================================================================================================================================================
安装  1 软件包总计:13 k
安装大小:15 k
确定吗?[y/N]: y
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中  :                                                                                                                                       1/1 安装    : pgdg-redhat-repo-42.0-35PGDG.noarch                                                                                                   1/1 验证    : pgdg-redhat-repo-42.0-35PGDG.noarch                                                                                                   1/1 已安装:pgdg-redhat-repo-42.0-35PGDG.noarch                                                                                                                 完毕!
[root@pgserver ~]# 

在这里插入图片描述
第二步:在CentOS 8/RHEL 8上安装PostgreSQL

我们需要在CentOS 8上禁用PostgreSQL AppStream存储库,CentOS 8 Linux包含其他版本的PostgreSQL。

# dnf -qy module disable postgresql
[root@pgserver ~]# dnf -qy module disable postgresql
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

在这里插入图片描述

使用以下命令检查确认启用的存储库列表中是否包含有PostgreSQL 15。

# dnf repolist
[root@pgserver ~]# dnf repolist
仓库 id                                                 仓库名称
AppStream                                               CentOS-8.5.2111 - AppStream - mirrors.aliyun.com
base                                                    CentOS-8.5.2111 - Base - mirrors.aliyun.com
extras                                                  CentOS-8.5.2111 - Extras - mirrors.aliyun.com
pgdg-common                                             PostgreSQL common RPMs for RHEL / Rocky 8 - x86_64
pgdg11                                                  PostgreSQL 11 for RHEL / Rocky 8 - x86_64
pgdg12                                                  PostgreSQL 12 for RHEL / Rocky 8 - x86_64
pgdg13                                                  PostgreSQL 13 for RHEL / Rocky 8 - x86_64
pgdg14                                                  PostgreSQL 14 for RHEL / Rocky 8 - x86_64
pgdg15                                                  PostgreSQL 15 for RHEL / Rocky 8 - x86_64
pgdg16                                                  PostgreSQL 16 for RHEL / Rocky 8 - x86_64

在这里插入图片描述

使用以下命令检查存储库中是否有PostgreSQL 15软件包。

# yum search postgresql15
[root@pgserver ~]# yum search postgresql15
上次元数据过期检查:0:02:13 前,执行于 2023年10月09日 星期一 15时56分22秒。
============================================================ 名称 精准匹配:postgresql15 =============================================================
postgresql15.x86_64 : PostgreSQL client programs and libraries
============================================================== 名称 匹配:postgresql15 ===============================================================
postgresql15-contrib.x86_64 : Contributed source and binaries distributed with PostgreSQL
postgresql15-devel.x86_64 : PostgreSQL development header files and libraries
postgresql15-docs.x86_64 : Extra documentation for PostgreSQL
postgresql15-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql15-llvmjit.x86_64 : Just-in-time compilation support for PostgreSQL
postgresql15-odbc.x86_64 : PostgreSQL ODBC driver
postgresql15-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql15-plpython3.x86_64 : The Python3 procedural language for PostgreSQL
postgresql15-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql15-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql15-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql15-test.x86_64 : The test suite distributed with PostgreSQL
[root@pgserver ~]# 

在这里插入图片描述

现在在CentOS 8 上安装PostgreSQL 15软件包——服务器和客户端

# dnf install postgresql15 postgresql15-server

这将安装PostgreSQL 数据库服务端和一些附加的功能模块。

[root@pgserver ~]# dnf install postgresql15 postgresql15-server
上次元数据过期检查:0:09:13 前,执行于 2023年10月09日 星期一 15时56分22秒。
依赖关系解决。
======================================================================================================================================================软件包                                     架构                          版本                                    仓库                           大小
======================================================================================================================================================
安装:postgresql15                               x86_64                        15.4-1PGDG.rhel8                        pgdg15                        1.6 Mpostgresql15-server                        x86_64                        15.4-1PGDG.rhel8                        pgdg15                        5.9 M
安装依赖关系:postgresql15-libs                          x86_64                        15.4-1PGDG.rhel8                        pgdg15                        293 k事务概要
======================================================================================================================================================
安装  3 软件包总下载:7.8 M
安装大小:33 M
确定吗?[y/N]: y
下载软件包:
(1/3): postgresql15-libs-15.4-1PGDG.rhel8.x86_64.rpm                                                                   23 kB/s | 293 kB     00:12    
(2/3): postgresql15-15.4-1PGDG.rhel8.x86_64.rpm                                                                        34 kB/s | 1.6 MB     00:48    
(3/3): postgresql15-server-15.4-1PGDG.rhel8.x86_64.rpm                                                                 28 kB/s | 5.9 MB     03:34    
------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                   37 kB/s | 7.8 MB     03:34     

安装过程中还需要GPG密钥存储库。

PostgreSQL 15 for RHEL / Rocky 8 - x86_64                                                                             1.6 MB/s | 1.7 kB     00:00    
导入 GPG 公钥 0x442DF0F8:Userid: "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"指纹: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8来自: /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
确定吗?[y/N]: y
导入公钥成功
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中  :                                                                                                                                       1/1 安装    : postgresql15-libs-15.4-1PGDG.rhel8.x86_64                                                                                             1/3 运行脚本: postgresql15-libs-15.4-1PGDG.rhel8.x86_64                                                                                             1/3 安装    : postgresql15-15.4-1PGDG.rhel8.x86_64                                                                                                  2/3 运行脚本: postgresql15-15.4-1PGDG.rhel8.x86_64                                                                                                  2/3 运行脚本: postgresql15-server-15.4-1PGDG.rhel8.x86_64                                                                                           3/3 安装    : postgresql15-server-15.4-1PGDG.rhel8.x86_64                                                                                           3/3 运行脚本: postgresql15-server-15.4-1PGDG.rhel8.x86_64                                                                                           3/3 
[/usr/lib/tmpfiles.d/pesign.conf:1] Line references path below legacy directory /var/run/, updating /var/run/pesign → /run/pesign; please update the tmpfiles.d/ drop-in file accordingly.验证    : postgresql15-15.4-1PGDG.rhel8.x86_64                                                                                                  1/3 验证    : postgresql15-libs-15.4-1PGDG.rhel8.x86_64                                                                                             2/3 验证    : postgresql15-server-15.4-1PGDG.rhel8.x86_64                                                                                           3/3 已安装:postgresql15-15.4-1PGDG.rhel8.x86_64         postgresql15-libs-15.4-1PGDG.rhel8.x86_64         postgresql15-server-15.4-1PGDG.rhel8.x86_64        完毕!
[root@pgserver ~]# 

安装 PostgreSQL 及其依赖项后,使用以下 psql 命令验证其版本。

[root@pgserver ~]# psql -V
psql (PostgreSQL) 15.4
[root@pgserver ~]# 

以上命令的输出显示,系统上已经安装 PostgreSQL 15.4 。

第三步:初始化并启动数据库服务

必须先进行PostgreSQL数据库初始化,然后才能使用数据库服务器。

运行下面的命令,初始化 PostgreSQL 数据库

/usr/pgsql-15/bin/postgresql-15-setup initdb
[root@pgserver ~]# /usr/pgsql-15/bin/postgresql-15-setup initdb
Initializing database ... OK[root@pgserver ~]# 

在这里插入图片描述
数据库的主要配置文件和存放路径在 /var/lib/pgsql/15/data/postgresql.conf

[root@pgserver ~]# ll /var/lib/pgsql/15/data/postgresql.conf
-rw-------. 1 postgres postgres 29459 109 16:17 /var/lib/pgsql/15/data/postgresql.conf

启动PostgreSQL数据库服务器并将其设置为在启动时启动。

[root@pgserver ~]# systemctl enable --now postgresql-15
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql-15.service → /usr/lib/systemd/system/postgresql-15.service.
[root@pgserver ~]# 

通常使用以下2条命令来启动并配置:

systemctl start postgresql-15
systemctl enable postgresql-15

也可以使用systemctl enable --now postgresql-15 这一条命令来替代以下两个命令:

  1. systemctl start postgresql-15 用于启动 PostgreSQL 15 服务。
  2. systemctl enable postgresql-15 用于设置 PostgreSQL 15 服务开机自启动。

systemctl enable --now postgresql-15 命令结合了这两个操作,它会启动 PostgreSQL 15 服务并设置为开机自启动。这是一个更便捷的方式来同时执行这两个任务。

检查服务状态以确认它正在运行。

systemctl status postgresql-15
[root@pgserver ~]# 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 Mon 2023-10-09 16:25:49 CST; 55s agoDocs: https://www.postgresql.org/docs/15/static/Process: 17669 ExecStartPre=/usr/pgsql-15/bin/postgresql-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)Main PID: 17675 (postmaster)Tasks: 7 (limit: 49189)Memory: 17.5MCGroup: /system.slice/postgresql-15.service├─17675 /usr/pgsql-15/bin/postmaster -D /var/lib/pgsql/15/data/├─17676 postgres: logger ├─17678 postgres: checkpointer ├─17679 postgres: background writer ├─17681 postgres: walwriter ├─17682 postgres: autovacuum launcher └─17683 postgres: logical replication launcher 10月 09 16:25:49 pgserver systemd[1]: Starting PostgreSQL 15 database server...
10月 09 16:25:49 pgserver postmaster[17675]: 2023-10-09 16:25:49.955 CST [17675] 日志:  日志输出重定向到日志收集进程
10月 09 16:25:49 pgserver postmaster[17675]: 2023-10-09 16:25:49.955 CST [17675] 提示:  后续的日志输出将出现在目录 "log"中.
10月 09 16:25:49 pgserver systemd[1]: Started PostgreSQL 15 database server.
[root@pgserver ~]# 

在这里插入图片描述
可以看到PostgreSQL 服务已经激活运行。

第四步:设定PostgreSQL管理员使用者的密码

默认情况下,PostgreSQL数据库是不安全的,可以轻松切换到 postgres 用户,无需任何密码,并开始使用 psql,如下所示
在这里插入图片描述
因此部署完成后,我们需要加强 PostgreSQL 数据库的安全性,更新和修改 PostgreSQL 系统用户密码和数据库管理员密码。

默认情况下,PostgreSQL没有设置密码,您需要设置一个管理员密码。

运行以下命令,替换"your_password"为您想要的密码:

sudo -u postgres psql

进入PostgreSQL命令行后,执行以下命令来设置密码:

ALTER USER postgres PASSWORD 'your_password';

退出PostgreSQL命令行:

\q

或者按照以下方法进行修改。
1、使用 passwd 命令为 postgres 用户设置密码;
2、使用 ALTER USER 数据库命令设置数据库管理员密码;

$ passwd postgres
$ su – postgres
$ psql -c "ALTER USER postgres WITH PASSWORD ‘xxxxxxxxxxx';"

修改数据库管理员密码
第五步:启用远程数据库连接

在默认情况下,PostgreSQL安装完成后通常会限制只允许本地连接,这是为了增加数据库的安全性。
这意味着只有在运行PostgreSQL服务器的本地机器上才能连接到数据库,而其他计算机无法远程访问。

启用远程数据库连接可以增加数据库的灵活性,允许其他计算机通过网络连接到数据库服务器,从而可以在不同的计算机上访问和使用数据库。但是,这也会增加一些安全风险,因此在启用远程连接之前,需要采取一些安全措施,如:

1. 访问控制: 通过修改PostgreSQL的pg_hba.conf文件来限制哪些IP地址或主机可以连接到数据库。您可以配置白名单,仅允许特定IP地址或主机访问数据库。

2. 防火墙规则: 确保服务器上的防火墙规则允许外部计算机连接到PostgreSQL的端口(默认为5432)。

3. 安全性最佳实践: 遵循数据库安全性最佳实践,包括定期备份数据库、使用强密码、定期更新PostgreSQL和操作系统等。

在启用远程连接之前,务必考虑安全性并采取适当的措施,以确保您的数据库不受未经授权的访问或潜在的威胁。这样可以在提高灵活性的同时保护数据库的安全。

要启用远程数据库连接,我们需要进行以下步骤:

  1. 编辑pg_hba.conf文件

    PostgreSQL使用pg_hba.conf文件来配置客户端的访问控制规则。我们需要编辑此文件以允许远程连接。使用文本编辑器(如nanovi)打开该文件:

    vim  /var/lib/pgsql/15/data/pg_hba.conf
    

    找到适当的位置添加一行规则,以允许远程访问。例如,要允许所有IP地址的远程访问,可以添加以下行:

    host    all             all             0.0.0.0/0            md5
    

    这表示允许所有主机(0.0.0.0/0)连接到所有数据库(all)的所有用户(all),并要求使用密码验证(md5)。
    请注意,这将允许来自任何IP地址的连接,因此请谨慎使用,如果是在生产环境中建议更严格地限制可以访问数据库的 IP 地址。
    在这里插入图片描述

  2. 配置postgresql.conf文件

    PostgreSQL的postgresql.conf文件包含有关服务器配置的信息。确保该文件中的listen_addresses设置为允许远程连接。使用文本编辑器打开该文件:

    vim  /var/lib/pgsql/15/data/postgresql.conf
    

    确保以下行没有被注释掉(去掉前面注释的#):
    然后将“侦听地址”设置为服务器IP地址或所有接口的“ * ”。

    listen_addresses = '*'
    

    这将允许服务器开放监听所有可用的网络接口。
    配置监听所有网络接口

  3. 重新启动PostgreSQL

    使上述更改生效,重新启动PostgreSQL服务:

    sudo systemctl restart postgresql-15
    
  4. 防火墙规则

    确保我们的服务器防火墙允许远程连接到PostgreSQL的端口(默认端口为 5432)。具体规则可能因您的防火墙管理工具而异。您可以使用firewall-cmdiptables来配置规则。

  5. 测试远程连接

    使用远程计算机上的PostgreSQL客户端工具,连接到您的PostgreSQL服务器以测试远程连接。确保使用正确的IP地址、用户名和密码。

$ psql -U <dbuser> -h <serverip> -p 5432 <dbname>

请注意,启用远程连接会增加潜在的安全风险,因此应采取适当的安全措施,例如限制允许连接的IP地址,使用强密码,定期更新PostgreSQL和操作系统等,以确保数据库的安全性。

现在,我们已经成功在CentOS 8 系统上安装并配置了PostgreSQL 15.4。我们可以使用psql命令行工具或其他PostgreSQL客户端连接到数据库并开始使用它。如果需要的话,还可以安装其他PostgreSQL扩展和工具。

最后建议安装pgAdmin 4来管理PostgreSQL 15数据库, pgAdmin是领先的开源功能丰富的PostgreSQL管理和开发平台,可在Linux,Unix,Mac OS X和Windows上运行。

具体安装方法将在下一篇文章中介绍。

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

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

相关文章

k8s 集群部署 kubesphere

一、最小化部署 kubesphere 1、在已有的 Kubernetes 集群上部署 KubeSphere&#xff0c;下载 YAML 文件: wget https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml wget https://github.com/kubesphere/ks-installer/releases/…

iPhone手机记笔记工具选择用哪个

iPhone手机大家应该都比较熟悉&#xff0c;其使用性能是比较流畅的&#xff0c;在iPhone手机上记录笔记可以帮助大家快速地进行总结工作、记录工作内容等&#xff0c;在iPhone手机上记笔记工具选择用哪个呢&#xff1f; 可以在iPhone手机上使用的笔记工具是比较多的&#xff0…

Andriod学习笔记(一)

写在前面的话 App开发的编程语言Java和KotlinXML App连接的数据库App工程目录结构模块级别的编译配置文件清单文件 界面显示与逻辑处理 安卓是一种基于Linux内核的自由及开放源代码的操作系统&#xff0c;主要使用于移动设备。 Mininum SDK表示安卓该版本以上的设备都可以运行该…

在Openresty中使用lua语言向请求浏览器返回请求头User-Agent里边的值

可以参考《Linux学习之Ubuntu 20.04在https://openresty.org下载源码安装Openresty 1.19.3.1&#xff0c;使用systemd管理OpenResty服务》安装Openresty。 然后把下边的内容写入到openresty配置文件/usr/local/openresty/nginx/conf/nginx.conf&#xff08;根据实际情况进行选…

基于SSM的网络安全宣传网站设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

医疗机构又进化了,一招搞定UPS设备太爽了!

在现代社会中&#xff0c;能源供应的可靠性至关重要&#xff0c;不间断电源&#xff08;UPS&#xff09;系统是维持关键设备运行的关键组成部分。UPS监控是一种重要的技术&#xff0c;用于实时监测UPS的性能、电池状态和电力质量。 客户案例 四川某医院是一家大型医疗机构&…

应对广告虚假流量,app广告变现该如何风控?

移动广告市场中的虚假流量一直是困扰各移动应用厂商的难题&#xff0c;广告作为app商业化变现最为直接快捷的途径&#xff0c;也引申出了流量作弊与反作弊的纷争。 根据《2021中国异常流量报告》&#xff0c;2021年中国品牌广告市场因异常流量造成的损失约为326亿人民币&#…

适合学生写作业的台灯有哪些?高品质学生读写台灯推荐

不得不说如今我国青少年儿童的近视率还是非常高的&#xff0c;据国家卫健委疾控局数据&#xff0c;我国儿童青少年总体近视率为52.7%&#xff0c;其中6岁儿童为14.3%&#xff0c;小学生为35.6%&#xff0c;初中生为71.1%&#xff0c;高中生为80.5%&#xff0c;造成近视的原因不…

2. redis常见数据类型

一、Redis 数据类型 Redis支持五种数据类型&#xff1a;string&#xff08;字符串&#xff09;&#xff0c;hash&#xff08;哈希&#xff09;&#xff0c;list&#xff08;列表&#xff09;&#xff0c;set&#xff08;集合&#xff09;及zset(sorted set&#xff1a;有序集合…

1800*C. Table Decorations(贪心 || 二分)

Problem - 478C - Codeforces 解析&#xff1a; 做法一&#xff1a;二分&#xff0c;显然左右边界为 0 和 总数量除以3。check时mid&#xff0c;任意两项之和都不能小于mid 做法二&#xff1a;贪心&#xff0c;当数量最大的气球数量的一半小于另外两种颜色气球的数量之和&#…

[Python]图片转字符画——这就是我的表情!!!!!!

背景 偶尔看到一些视频&#xff0c;他们把图片转字符画&#xff0c;平常也没有去关注&#xff0c;今天来捣鼓一下。 研究了一下还超级简单的&#xff0c;都是调用别人写好的框架。 网上也有很多教学。 代码实现 from PIL import Image # 表示字符颜色&#xff0c;由深到浅&am…

阿里云ModelScope 是一个“模型即服务”(MaaS)平台

简介 项目地址&#xff1a;https://github.com/modelscope/modelscope/tree/master ModelScope 是一个“模型即服务”(MaaS)平台&#xff0c;旨在汇集来自AI社区的最先进的机器学习模型&#xff0c;并简化在实际应用中使用AI模型的流程。ModelScope库使开发人员能够通过丰富的…

浅谈智能型电动机控制器在斯里兰卡电厂中的应用

摘要&#xff1a;传统的低压电动机保护是通过继电保护二次回路实现&#xff0c;但是我们结合电厂辅助控制设备的特点及其控制要求&#xff0c;推荐ARD2F智能型电动机控制器。以下综合介绍ARD2F智能型电动机控制器产品的特点及其智能化保护、测量、控制和通讯等。 Abstract: Th…

ppt录屏没有声音?超实用教程来了!

随着信息技术的发展&#xff0c;ppt已经成为工作中必不可少的工具。无论是工作报告、项目展示还是学术交流&#xff0c;都离不开ppt的辅助。屏幕录制功能是ppt的一个重要特性&#xff0c;可以帮助用户方便地录制幻灯片演示&#xff0c;但在使用过程中&#xff0c;有时会遇到ppt…

ubuntu配置yolov5环境

本文硬件平台为工控机&#xff0c;系统环境为ubuntu18 配置yolov5步骤 1.下载pytorch和torchvision软件包 由于在线安装容易出现安装失败&#xff0c;所以本文使用的是本地安装。本文是基于miniconda安装的&#xff0c;miniconda安装参考之前的博客&#xff1a;ubuntu中安装m…

微信小程序报错request:fail -2:net::ERR_FAILED(生成中间证书)

微信小程序报错request:fail -2:net::ERR_FAILED-生成中间证书 前言一、检查网站ssl证书二、生成证书方法1.获取中间证书手动合并1.进入网站&#xff1a;[https://www.myssl.cn/tools/downloadchain.html](https://www.myssl.cn/tools/downloadchain.html)2.点击下一步3.手动合…

C++教程(2)

C 环境设置 本地环境设置 如果您想要设置 C 语言环境&#xff0c;您需要确保电脑上有以下两款可用的软件&#xff0c;文本编辑器和 C 编译器。 文本编辑器 这将用于输入您的程序。文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。 文…

uniapp:幸运大转盘demo

<template><view class"index"><image src"../../static/img/158.png" mode"" class"banner"></image><view class"title">绿色积分加倍卡拿到手软</view><almost-lottery :lottery…

招投标系统简介 企业电子招投标采购系统源码之电子招投标系统 —降低企业采购成本

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看所…

cuML机器学习GPU库

目录 一、开始安装 1、创建虚拟环境 2、激活该虚拟环境 3、安装cuML 4、安装ipykernel 5、在jupter上使用&#xff0c;所以需要配置一下新的内核 二、调试 1、原始机器学习库运行 2、cuml库运行 以下安装教程为基于Linux系统&#xff0c;cuda版本为11.3.109、驱动530.…