当前位置: 首页 > 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;当…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...