【PostgreSQL】安装和常用命令教程

PostgreSQL window安装教程

window安装PostgreSQL

建表语句:

DROP TABLE IF EXISTS student;
CREATE TABLE student (id serial NOT NULL,name varchar(100) NOT NULL,sex varchar(5) NOT NULL,PRIMARY KEY (id)
);INSERT INTO student (id, name, sex) VALUES (1, '小明', '男');
INSERT INTO student (id, name, sex) VALUES (2, '小红', '女');CREATE TABLE IF NOT EXISTS score
(id integer NOT NULL,student_id integer NOT NULL,grade integer NOT NULL,PRIMARY KEY (id)
);insert into score(id,student_id,grade)values(1,1,80);
insert into score(id,student_id,grade)values(2,2,90);
PostgreSQL自增
MySQL 是用 AUTO_INCREMENT 这个属性来标识字段的自增。PostgreSQL 使用序列来标识字段的自增长:CREATE TABLE runoob
(id serial NOT NULL,alttext text,imgurl text
)

https://www.runoob.com/postgresql/postgresql-autoincrement.html

PostgreSQL表的创建

PostgreSQL表的创建

PostgreSQL linux安装教程1——centos6

linux安装PG教程

(1)安装依赖包

yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake

(2)下载PG安装包

http://www.postgresql.org/ftp/source/
在这里插入图片描述

(3)解压安装

在根目录下新建pgsql文件夹,并将pgsql的压缩包移入

tar -zxvf postgresql-15.3.tar.gz

进入解压后的文件夹,编译postgresql源码

cd postgresql-15.3/./configure --prefix=/pgsql/postgresql

make:

makemake install

进入/pgsql/postgresql目录可以看到安装后的postgresql的文件。

在这里插入图片描述

(5)创建用户组postgres并创建用户postgres

groupadd postgresuseradd -g postgres postgresid postgres

结果:

uid=501(postgres) gid=501(postgres) 组=501(postgres)

(6)创建postgresql数据库的数据主目录并修改文件所有者

cd /pgsql/postgresqlmkdir datachown postgres:postgres datals -al

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(7)配置环境变量

进入home/postgres目录可以看到.bash_profile文件。

cd /home/postgresls -al

在这里插入图片描述

修改:

vim .bash_profile

使其生效

source .bash_profile 

(8)切换用户到postgres并使用initdb初使用化数据库

su - postgresinitdb

可以看到 /pgsql/postgresql/data已经有文件:

cd /pgsql/postgresql/datals

在这里插入图片描述

(9)配置服务

修改/pgsql/postgresql/data目录下的两个文件。

  • postgresql.conf 配置PostgreSQL数据库服务器的相应的参数。

  • pg_hba.conf 配置对数据库的访问权限。

vim postgresql.conf
listen_addresses = '*'

把这个地址改为*,表示在本地的所有地址上监听

vim pg_hba.conf

在# IPv4 local connections:下添加:

host    all             all             0.0.0.0/0                  trust

(10)设置PostgreSQL开机自启动

PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下。

cd /root/pgsql/postgresql-15.3/contrib/start-scripts

在这里插入图片描述

添加执行权限:

chmod a+x linux

复制linux文件到/etc/init.d目录下,更名为postgresql:

cp linux /etc/init.d/postgresql

修改/etc/init.d/postgresql文件的两个变量:

# Installation prefix
prefix=/pgsql/postgresql# Data directory
PGDATA="/pgsql/postgresql/data"

设置postgresql服务开机自启动

chkconfig --add postgresql

查看:chkconfig

在这里插入图片描述

编辑/etc/sysconfig/iptables文件开放5432端口:

cd /etc/sysconfigvim iptables

添加下列内容:

-A INPUT -p tcp -m tcp --dport 5432 -j ACCEPT

重启服务,或者其它命令:

systemctl restart iptables.service

查看端口是否开放:

/sbin/iptables -L -n

执行service postgresql start,启动PostgreSQL服务:

service postgresql start

在这里插入图片描述

查看PostgreSQL服务:

ps -ef | grep postgres

如果没有iptables:

systemctl stop firewalld.service && systemctl disable firewalld.serviceyum install iptables-services iptables-develsystemctl enable iptables.service && systemctl start iptables.service
查看状态 systemctl status iptables.service查看iptables配置文件 vim /etc/sysconfig/iptables

psql失败:

psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: Connection refusedIs the server running locally and accepting connections on that socket?
tail -f /pgsql/postgresql/data/pg_log/postgresql-*.log

netstat -nlp | grep 5432后没有任何信息,说明postgresql服务没有顺利启动。

PostgreSQL linux安装教程2——centos7

centos7安装PG

centos7安装PG2

centos7安装PG3

(1)进入官方下载https://www.postgresql.org/download/

选择对应的系统和对应的版本,注意,版本不要太高:

image-20230613170415723

PG11安装命令:

# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Install PostgreSQL:
sudo yum install -y postgresql11-server# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
sudo systemctl enable postgresql-11
sudo systemctl start postgresql-11

创建数据库测试:

切换到postgres用户

su - postgres
psql 

创建用户

create user test with password '123.com';

创建数据库

create database test_db owner test;

退出

\q

(2)配置远程连接
修改文件postgresql.conf :

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

添加:

listen_addresses = ‘*’

修改pg_hba.conf文件:

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

添加:

host all all 0.0.0.0/0 trust

(3)重启并关闭防火墙

重启服务:

systemctl restart postgresql-11.service

关闭防火墙:

systemctl stop firewalld

注意,

  • 如果是腾讯云/阿里云,需要配置端口开放,很多时候卡在这。
  • 防火墙没关闭完全
  • 连接软件全都关闭试试

(4)验证

可以通过navicat来尝试能否连接hsang

PG常用指令

PG数据库教程

查看数据库
\l
使用数据库
\c imdbload
查看表
\dt
查看索引
\di
执行sql脚本
\i /var/lib/pgsql/benchmark/schematext.sql;
生成执行计划
EXPLAIN (FORMAT JSON, analyze)
SELECT MIN(mc.note) AS production_note,MIN(t.title) AS movie_title,MIN(t.production_year) AS movie_year
FROM company_type AS ct,info_type AS it,movie_companies AS mc,movie_info_idx AS mi_idx,title AS t
WHERE ct.kind = 'production companies'AND it.info = 'top 250 rank'AND mc.note NOT LIKE '%(as Metro-Goldwyn-Mayer Pictures)%'AND (mc.note LIKE '%(co-production)%'OR mc.note LIKE '%(presents)%')AND ct.id = mc.company_type_idAND t.id = mc.movie_idAND t.id = mi_idx.movie_idAND mc.movie_id = mi_idx.movie_idAND it.id = mi_idx.info_type_id;
创建物化视图
CREATE MATERIALIZED VIEW mv2 AS
select info_type.id AS id, info_type.info AS info, movie_info_idx.movie_id AS movie_idfrom movie_info_idx,info_typewhere (movie_info_idx.info_type_id = info_type.id) And (info_type.info = 'top 250 rank');
EXPLAIN (FORMAT JSON, analyze)
select info_type.id AS id, info_type.info AS info, movie_info_idx.movie_id AS movie_idfrom movie_info_idx,info_typewhere (movie_info_idx.info_type_id = info_type.id) And (info_type.info = 'top 250 rank');
EXPLAIN (FORMAT JSON, analyze)
SELECT MIN(t.title) AS movie_title
FROM company_name AS cn,movie_companies AS mc,title AS t,mv12
WHERE cn.country_code ='[us]'AND cn.id = mc.company_idAND mc.movie_id = t.idAND t.id = mv12.movie_idAND mc.movie_id = mv12.movie_id;
postgreSQL取某个表的前100行作为一个新表
CREATE TABLE new_table AS
SELECT * FROM original_table
LIMIT 100;
暂停PG运行
sudo systemctl stop postgresql-11
设置PG并行执行相关
set max_parallel_workers_per_gather = 0;

表示禁用每个 Gather 操作的并行执行。

如果您需要禁用全局并行查询,您还需要将 max_parallel_workers 参数设置为 0

关闭Memoize算子
set enable_memoize TO off;
修改PG参数文件

14是PG的版本名字

/var/lib/pgsql/14/data

可修改参数:

(1)work_mem

在 PostgreSQL 中,work_mem 参数控制每个工作进程使用的内存量。该参数设置得越高,可以执行更复杂的查询,但是也将占用更多的系统资源和内存。

work_mem = 2GB

(2)shared_buffers

请注意,shared_buffers 参数控制着 PostgreSQL 使用的共享内存缓冲区的大小。设置得太小可能导致频繁的磁盘读写操作,而设置得太大可能会占用过多的系统内存。建议根据您的硬件配置和数据库负载进行适当的调整。

shared_buffers = 1GB

(3)effective_cache_size

请注意,effective_cache_size 参数用于告诉 PostgreSQL 系统可用的内存缓存大小。设置得太小可能导致频繁的磁盘读写操作,而设置得太大可能会占用过多的系统内存。建议根据您的硬件配置和数据库负载进行适当的调整。

effective_cache_size = 32GB

(4)gego_threshold

gego_threshold = 18
查看配置文件路径
show config_file;

image-20231018164654113

修改PG的data存储路径

https://www.cnblogs.com/miracle-luna/p/17019256.html

em` 参数控制每个工作进程使用的内存量。该参数设置得越高,可以执行更复杂的查询,但是也将占用更多的系统资源和内存。

work_mem = 2GB

(2)shared_buffers

请注意,shared_buffers 参数控制着 PostgreSQL 使用的共享内存缓冲区的大小。设置得太小可能导致频繁的磁盘读写操作,而设置得太大可能会占用过多的系统内存。建议根据您的硬件配置和数据库负载进行适当的调整。

shared_buffers = 1GB

(3)effective_cache_size

请注意,effective_cache_size 参数用于告诉 PostgreSQL 系统可用的内存缓存大小。设置得太小可能导致频繁的磁盘读写操作,而设置得太大可能会占用过多的系统内存。建议根据您的硬件配置和数据库负载进行适当的调整。

effective_cache_size = 32GB

(4)gego_threshold

gego_threshold = 18
查看配置文件路径
show config_file;

[外链图片转存中…(img-ojLvcnHW-1705414404781)]

修改PG的data存储路径

https://www.cnblogs.com/miracle-luna/p/17019256.html

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

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

相关文章

详解ISIS动态路由协议

华子目录 前言应用场景历史起源ISIS路由计算过程ISIS的地址结构ISIS路由器分类ISIS邻居关系的建立P2PMA ISIS中的DIS与OSPF中DR的对比链路状态信息的交互ISIS的最短路径优先算法(SPF)ISIS区域划分ISIS区域间路由访问原理ISIS与OSPF的不同ISIS与OSPF的术语…

2024美赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

基于Docker的Nginx的安装与配置

基于Docker的Nginx的安装与配置 1 为Nginx创建一个容器1.1 学习docker run1.2 通过docker run为Nginx创建并启动一个容器 2 配置Nginx2.1 学习docker的bind mount技术2.2 在Nginx容器中找到想修改的文件所在的目录2.2.1 认识nginx.conf文件2.2.2 访问Nginx服务,默认…

TortoiseGit 2.15.0.0 安装与配置(图文详细教程)

TortoiseGit的安装与配置 TortoiseGit是Tortoise为Git提供的版本可视化工具,简化了记忆Git命令行的过程,将命令行可视化。 确保自己电脑中已经下载好了git 官网下载TortoiseGit Download – TortoiseGit – Windows Shell Interface to Git 选择64-bi…

oracle 19c容器数据库data dump数据泵传输数据(3)---完全传输

目录 查看pdb1 创建pdb2 从pdb1 中导出元数据 在pdb2中导入元数据(dmp文件) Full Transportable Export/Import: Example 只传输除了system,sysaux,temp,undo以外的用户表空间,這種方式傳輸的是用戶自定…

C# 图解教程 第5版 —— 第24章 预处理指令

文章目录 24.1 什么是预处理指令24.2 基本规则24.3 符号指令(#define、#undef )24.4 条件编译(#if、#else、#elif、#endif)24.5 条件编译结构24.6 诊断指令(#warning、#error)24.7 行号指令(#li…

毕业设计:基于python微博舆情分析系统+可视化+Django框架 K-means聚类算法(源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏) 毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题&#xff…

部署本地GPT

在现实生活中,很多公司或个人的资料是不愿意公布在互联网上的,但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢?于是我们构建自己或公司的本地专属GPT变得非常重要。 先看效果: 查资料不用愁 家教不…

linux安装minio

目录 1、服务器创建minio文件 2、进入minio下的bin下 3、授予服务端和客户端文件可执行权限 4、设置用户名和密码 5、启动minio服务 6、查看minio版本 ​7、访问minio控制台 1、服务器创建minio文件 # 创建minio应用程序目录 mkdir -p /opt/minio/bin # 创建minio数据目…

IP定位技术在网络安全行业的探索

随着互联网的普及和深入生活,网络安全问题日益受到人们的关注。作为网络安全领域的重要技术,IP定位技术正逐渐成为行业研究的热点。本文将深入探讨IP定位技术在网络安全行业的应用和探索。 一、IP定位技术的概述 IP定位技术是通过IP地址来确定设备地理位…

josef约瑟 电流继电器 DL-13/2 0.5 -1A 1NC, 1NO柜内安装,带附件

系列型号 DL-11电流继电器; DL-12电流继电器; DL-13电流继电器; 一、应用范围 DL-13/2电流继电器 板前接线为电磁式瞬动过电流继电器,它广泛用于电力系统二次回路继电保护装置线路中,作为过电流启动元件。 二、主要技术参数据 动作时间…

c语言[]优先级大于*优先级

本博文源于笔者正在学习的c语言[]优先级大于*优先级.在定义二维数组时&#xff0c;a1与[]号结合后&#xff0c;谁的优先级更高&#xff0c;是本博文探讨的话题 博文来源 想要看看*与[]谁的优先级更高 博文代码 #include<stdio.h> #include<stdlib.h> int main(…