当前位置: 首页 > news >正文

postgresql

源码安装

./configure --prefix=/apps/pgsql
make world -j4
make install-world

useradd -s /bin/bash -m -d /home/postgres postgres
echo -e ‘123456\n123456’ | passwd postgres
mkdir -pv /pgsql/data
chown postgres:postgres /pgsql/data/

设置环境变量

vim /etc/profile.d/pgsql.sh
export PGHOME=/apps/pgsql
export PATH=$PGHOME/bin/:$PATH
export PGDATA=/pgsql/data
export PGUSER=postgres
export MANPATH=/apps/pgsql/share/man:$MANPATH

初始化
su - postgres
initdb -D /pgsql/data/
pg_ctl -D /pgsql/data/ -l logfile start

连接
psql

Ubuntu 启动脚本实现开机自动PostgreSQL
方法一
root@server02:~/postgresql-14.2/contrib# vim start-scripts/linux #修改安装目录和数据目录
prefix=/apps/pgsql

#Data directory
PGDATA=“/pgsql/data”

root@server02:~/postgresql-14.2/contrib# cp start-scripts/linux /etc/init.d/postgresql

root@server02:~/postgresql-14.2/contrib# chmod +x /etc/init.d/postgresql

vi /etc/rc.local
/etc/init.d/postgresql start

方法二
su - postgres -c “/apps/pgsql/bin/pg_ctl -D /pgsql/data/ -l logfile start”

service文件启动

root@server02:/apps/pgsql# cat /lib/systemd/system/postgresql.service
[Unit]
Description=PostgreSQL database server
After=network.target
[Service]
User=postgres
Group=postgres
ExecStart=/apps/pgsql/bin/postmaster -D /pgsql/data
ExecReload=/bin/kill -HUP
[Install]
WantedBy=multi-user.target

POSTgresql管理

导入数据:psql -f pg.sql
cat pg.sql
create database luo;
\c luo;
create table test(id int);

配置远程连接

改配置文件,修改监听端口为0.0.0.0
listen_addresses = ‘0.0.0.0’

psql -h 120.77.146.92 -U postgres
psql: error: connection to server at “120.77.146.92”, port 5432 failed: FATAL: no pg_hba.conf entry for host “120.79.60.104”, user “postgres”, database “postgres”, no encryption

配置连接文件,ubuntu yum安装在 /etc/postgresql/14/main/pg_hba.conf
vi pg_hba.conf
host all all 0.0.0.0/0 trust 远程不用密码
host all all 0.0.0.0/0 md5 #要密码,添加此行
重启服务:pg_ctl -D /pgsql/data/ restart

修改用户密码
alter user postgres with password ‘123456’;

远程连接成功
psql -h 120.79.60.104 -U postgres -p 5432

免密连接
cat .pgpass
120.79.60.104:5432:db1:postgres:12345

psql -h 120.79.60.104 db1 postgres

\timing on #显示执行命令时间
\set VERBOSITY VERBOSE ##显示详细的信息,可以打印出报出问题的源代码位置

查看数据库存放目录的路径select oid,datname from pg_database;
create schema  n80_sch;   #创建schema
db1=# \dn  #查看schemacreate table n80_sch.t1(id int);  #创建 表属于n80_sch\dt n80_sch.t1   #查看db1=# \dt n80_sch.t1List of relationsSchema  | Name | Type  |  Owner   
---------+------+-------+----------n80_sch | t1   | table | postgres
b1=#  \c testdb  #切换数据库
testdb=#  insert into tb1 (name) select (md5(random()::text)) from  generate_series (2,10);create table tb2 (like tb1); ##复制表结构,不复制数据
\d tb2  查看表结果select * from pg_tables;  #查看所有的表select pg_total_relation_size('tb1');#查看表大小查看数据库对应的目录
testdb=# select oid,datname from pg_database where datname = 'testdb';oid  | datname 
-------+---------16409 | testdb
(1 row)
查看表对应的文件
testdb=#  select relid from pg_stat_all_tables where relname='tb1';relid 
-------16411root@server02:/pgsql/data/base/16409# ll 16411
-rw------- 1 postgres postgres 8192 Aug 20 12:41 16411或者
testdb=#  select * from pg_relation_filepath('tb1');base/16409/16411查看当前库中的所有表的统计信息select * from pg_stat_all_tables;#查看指定表t1的信息select * from pg_stat_all_tables where relname='t1';

create table tb1 (id serial,name varchar(10));

批量添加

testdb=#  create table tb1 (id serial primary key,name text);
CREATE TABLE
Time: 5.048 ms
testdb=#  insert into tb1 (name) select (md5(random()::text)) from 
generate_series (1,1000000);
INSERT 0 1000000
Time: 3638.546 ms (00:03.639)100万记录2
testdb=#  create table tb1(id int,info text,crt_time timestamp);
CREATE TABLE
Time: 3.263 ms
testdb=#  insert into tb1 select 
generate_series(1,100000),md5(random()::text),clock_timestamp();
INSERT 0 100000显示时间
testdb=# select clock_timestamp();2023-08-20 13:09:20.561662+08#创建索引
testdb=#  create index idx_tb1_id on tb1(id);#查看索引
select * from pg_indexes where tablename='tb1'; 
#查询条件是索引列
testdb=#  explain analyze select * from tb1 where id = 99999;Index Scan using idx_tb1_id on tb1  (cost=0.29..8.31 rows=1 width=45) (actual time=0.020..0.021 rows=1 loops=1)Index Cond: (id = 99999)Planning Time: 0.198 msExecution Time: 0.041 ms
Time: 0.412 ms全表扫描
testdb=# explain analyze select * from tb1 where info = 
'fb16d90265f55880ba96b016afe65b51 ';Seq Scan on tb1  (cost=0.00..2185.00 rows=1 width=45) (actual time=7.967..7.968 rows=0 loops=1)Filter: (info = 'fb16d90265f55880ba96b016afe65b51 '::text)Rows Removed by Filter: 100000Planning Time: 0.058 msExecution Time: 7.986 msTime: 8.359 ms#关闭索引
testdb=#  set enable_indexscan=off;
SETset enable_bitmapscan=off;删除索引
testdb=# drop index idx_tb1_id;

表空间
存放表的目录

postgres@server02:~$ mkdir ts1

testdb=# create tablespace ts1 location ‘/home/postgres/ts1/’;
CREATE TABLESPACE
Time: 1.256 ms
testdb=# \db
pg_default | postgres |
pg_global | postgres |
ts1 | postgres | /home/postgres/ts1

创建表指定表空间
create table tb3(id int) tablespace ts1;

testdb=# select * from pg_relation_filepath(‘tb3’);
pg_tblspc/16448/PG_14_202107181/16409/16449
删除表空间,要先删除表
drop tablespace ts1;

#查看数据库启动时间
postgres=# select pg_postmaster_start_time();

导入数据

psql < hellodb.sql

#关闭自动提交,可以用rollback取消DML语句
\set AUTOCOMMIT off
\set AUTOCOMMIT on

用户账号管理

Create user   user1 PASSWORD '123';CREATE ROLE li WITH LOGIN PASSWORD '123456';

登录
psql -h 120.79.60.104 -U user1 hellodb

创建超级管理员,可以删除库
CREATE ROLE luo WITH SUPERUSER LOGIN PASSWORD ‘123456’ ;

禁止登录
alter user luo with nologin ;

\du 查看用户信息

修改用户有创建数据库权限
postgres=# alter user li with createdb;

授权li用户hellodb数据库查看权限
pinxixi=# \c hellodb
You are now connected to database “hellodb” as user “postgres”.
hellodb=# GRANT select ON ALL TABLES IN schema public to li;
GRANT

安装pgadmin
apt list|grep pgadmin
apt install phppgadmin

相关文章:

postgresql

源码安装 ./configure --prefix/apps/pgsql make world -j4 make install-world useradd -s /bin/bash -m -d /home/postgres postgres echo -e ‘123456\n123456’ | passwd postgres mkdir -pv /pgsql/data chown postgres:postgres /pgsql/data/ 设置环境变量 vim /etc/…...

AutoSAR配置与实践(基础篇)3.2 BSW中的I/O架构和模块详解

传送门 -> AUTOSAR配置与实践总目录 AutoSAR配置与实践(基础篇)3.2 BSW中的I/O架构和模块详解 一、 BSW中的I/O架构和模块详解1.1 I/O 模块构成1.2 各子模块功能详解二、举例说明I/O 模块如何配合完成信号采集2.1 硬件处理先行 (step1-4)2.2 AUTOSAR软件登场(step 5-7)2.3…...

基于Java+SpringBoot+Vue的学校田径运动会管理系统【源码+论文+演示视频+包运行成功】

博主介绍&#xff1a;✌擅长Java、微信小程序、Python、Android等&#xff0c;专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3fb; 不然下次找不到哟 Java项目精品实战案…...

使用 Visual Studio Code Docker 工具调试 .NET 容器

作者&#xff1a;Chet Husk 排版&#xff1a;Alan Wang Visual Studio Code Docker 工具已发布1.26.0版本&#xff0c;这个版本为使用 .NET SDK 构建和调试容器映像提供了内置支持。 VS Code 中的 Docker 调试 Visual Studio Code Docker 工具使开发人员可以轻松入门容器。它…...

AI引擎助力,CamScanner智能高清滤镜开启扫描新纪元!

文章目录 ⭐ 写在前面⭐ 突破图像处理难点&#xff1a;扫描全能王的独特优势⭐ 耳听为虚&#xff0c;眼见为实⭐ 产品背后的主要核心&#xff1a;AI-Scan助力⭐ 深度学习助力智能文档处理的国际化进程⭐ 品味智能文档处理的轻松与精准 ⭐ 写在前面 在数字化快速发展的今天&…...

opencv进阶07-支持向量机cv2.ml.SVM_create()简介及示例

支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种二分类模型&#xff0c;目标是寻找一个标准&#xff08;称为超平面&#xff09;对样本数据进行分割&#xff0c;分割的原则是确保分类最优化&#xff08;类别之间的间隔最大&#xff09;。当数据…...

LA@n维向量@解析几何向量和线性代数向量

文章目录 概念n维向量向量类型实向量和复向量行向量和列向量行列向量的转换特殊向量向量运算 矩阵的向量分块&#x1f47a; 解析几何向量和线性代数向量&#x1f47a;向量空间 n n n维向量空间 n n n维空间的 n − 1 n-1 n−1维超平面 概念 n维向量 由 n n n个有次序的数 a …...

go 协程并发数控制

错误的写法&#xff1a; 这里的<-ch 是为了从channel 中读取 数据&#xff0c;为了不使channel通道被写满&#xff0c;阻塞 go 协程数的创建。但是请注意&#xff0c;go workForDraw(v, &wg) 是不阻塞后续的<-ch 执行的&#xff0c;所以就一直go workForDraw(v, &…...

MySQL的安装以及卸载

下载官网 https://www.mysql.com/ 切到下载tab页 找到 MySQL Community Server 或者 MySQL Community (GPL) Downloads --> MySQL Community Server 点击download按钮&#xff1a; 点击download进入下载页面选择No thanks, just start my download就可以开始下载了。 下…...

LRU算法与Caffeine、Redis中的缓存淘汰策略

推荐阅读 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转cloud Studio 在线编码神器 玩转 GPU AI绘画、AI讲话、翻译,GPU点亮AI想象空间 资源分享 「java、python面试题」来自UC网盘app分享&#xff0c;打开手机app&#xff0c;额外获得1T空间 https://dr…...

HTML笔记(3)

表单标签 用于登录、注册界面&#xff0c;以采集用户输入的信息&#xff0c;把信息采集到之后&#xff0c;用户一点按钮&#xff0c;就会把这些信息发送到服务端&#xff0c;服务端就可以把这些数据存储到数据库&#xff0c;所以表单是一个非常重要的html标签&#xff0c;它主要…...

c++——重写(覆盖),实际上对应的就是虚函数

重写是指派生类中存在重新定义的函数。其函数名&#xff0c;参数列表&#xff0c;返回值类型&#xff0c;所有都必须同基类中被重写的函数一致。只有函数体不同&#xff08;花括号内&#xff09;&#xff0c;派生类调用时会调用派生类的重写函数&#xff0c;不会调用被重写函数…...

算法通关村——字符串反转问题解析

1. 反转字符串 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 1.1 交换 这一题的思路还是简单的&…...

vue + elementui 中 在弹框中使用了 tree型结构(<el-tree></el-tree>),点击关闭按钮按钮重置tree

vue 项目中使用了element-ui 中 tree&#xff0c;选择了懒加载的模式 通过点击按钮&#xff0c;使得 tree 重新加载 <div class"head-container header-tree" v-if"addDialogVisible"><el-treeref"tree":data"treeData":loa…...

windows adb根据id点击按钮

在 Windows 上使用 adb 根据控件的 ID 来模拟点击按钮&#xff0c;可以使用以下命令&#xff1a; 查看当前屏幕上的所有控件信息&#xff0c;并将其保存到文件中&#xff1a; adb shell uiautomator dump /sdcard/ui.xml 将设备上的 ui.xml 文件下载到计算机上&#xff1a; ad…...

netty(一):NIO——处理消息边界

处理消息边界 为什么要处理边界 因为会存在半包和粘包的问题 1.客户端和服务端约定一个固定长度 优点&#xff1a;简单 缺点&#xff1a;可能造成浪费 2.客户端与服务端约定一个固定分割符 *缺点 效率低 3.先发送长度&#xff0c;再发送数据 TLV格式&#xff1a; type…...

等保测评--安全计算环境--测评方法

安全子类--身份鉴别 a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; 一、测评对象 终端和服务器等设备中的操作系统(包括宿主机和虚拟机操作系统) 、网络设备(包括虚拟网络设备)、安全设备(包括虚拟安全设备)、移动终端…...

open cv学习 (二)色彩空间和通道

色彩空间和通道 demo1 import cv2hsv_image cv2.imread("./img.png")cv2.imshow("img", hsv_image) hsv_image cv2.cvtColor(hsv_image, cv2.COLOR_BGR2HSV) h, s, v cv2.split(hsv_image) cv2.imshow("B", h) cv2.imshow("G", s…...

RS232、RS422、RS485硬件及RS指令、RS2指令应用知识学习

RS232、RS422、RS485硬件及RS指令、RS2指令应用知识学习 一、串行&#xff08;异步/同步)通讯、并行通讯、以太网通讯 二、单工通讯/半双工通讯/双工通讯 三、常用硬件接口&#xff08;工业上基本是RS485两线制的接线&#xff09; 常用硬件接口RS232/RS422/RS485&#xff0c;…...

背景属性样式

&#x1f353;背景属性 属性名称中文注释备注background-image背景图片url(img-path)background-color背景颜色background-attachment设置背景固定scroll默认值&#xff0c;随盒子滚动&#xff0c; fixed固定&#xff0c;脱离标准流&#xff0c;固定在浏览器窗口&#xff0c;当…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...