【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:

make

make install

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

在这里插入图片描述

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

groupadd postgres

useradd -g postgres postgres

id postgres

结果:

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

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

cd /pgsql/postgresql

mkdir data

chown postgres:postgres data

ls -al

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

(7)配置环境变量

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

cd /home/postgres

ls -al

在这里插入图片描述

修改:

vim .bash_profile

使其生效

source .bash_profile 

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

su - postgres

initdb

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

cd /pgsql/postgresql/data

ls

在这里插入图片描述

(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/sysconfig

vim 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.service

yum install iptables-services iptables-devel

systemctl 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 refused
	Is 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_id
  AND t.id = mc.movie_id
  AND t.id = mi_idx.movie_id
  AND mc.movie_id = mi_idx.movie_id
  AND 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_id
 from movie_info_idx,info_type
 where (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_id
 from movie_info_idx,info_type
 where (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_id
  AND mc.movie_id = t.id
  AND t.id = mv12.movie_id
  AND 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.mfbz.cn/a/327826.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【电力电子】2 开、闭环单相桥式SPWM逆变仿真电路

【仅供参考】 【2022.11西南交大电力电子仿真】 目录 1 开环单相桥式SPWM逆变电路搭建及波形记录 2 闭环单相桥式SPWM逆变电路搭建及波形记录 1 开环单相桥式SPWM逆变电路搭建及波形记录 采用单极性调制法,按老师PPT(如下图)所示进行单相…

图解基础排序算法(冒泡、插入、选择)(山东大学实验二)

目录 ⚽前言: 🏐 冒泡排序: 设定: 分类: 起源: 图解冒泡: 图中绿色: 图中橙色: 整体思路: 交换思路: 核心代码: &#x…

基于WebSocket双向通信技术实现-下单提醒和催单(后端)

学习复盘和总结项目亮点。 扩展:该功能能应用在,各种服务类项目中。(例如:酒店、洗脚城等系ERP系中提醒类服务) 4. 来单提醒 4.1 需求分析和设计 用户下单并且支付成功后,需要第一时间通知外卖商家。通…

服务网关 Gateway

服务网关 Gateway Spring Cloud Gateway 是 Spring Cloud 生态系统中的网关,它基于 Spring5.0 SpringBoot2.0 WebFlux(基于高性能的 Reactor 模式响应式通信框架 Netty,异步非阻塞模型)等技术开发。旨在为微服务架构提供一种简…

如何在CentOS 7 中搭建Python 3.0 环境

1、下载 通过https://www.python.org/ftp/python/下载Python安装包,这里下载Python-3.10.9.tgz; 2、上传 借助MobaXterm等工具将Python安装包上传至/opt目录; 3、解压 将JDK压缩文件解压至/opt目录:tar -xvf /opt/Python-3.1…

React Store及store持久化的使用

1.安装 npm insatll react-redux npm install reduxjs/toolkit npm install redux-persist2. 使用React Toolkit创建counterStore并配置持久化 store/modules/counterStore.ts: import { createSlice } from reduxjs/toolkit// 定义状态类型 interface Action {…

Python数据分析案例33——新闻文本主题多分类(Transformer, 组合模型) 模型保存

案例背景 对于海量的新闻,我们可能需要进行文本的分类。模型构建很重要,现在对于自然语言处理基本都是神经网络的方法了。 本次这里正好有一组质量特别高的新闻数据,涉及 教育 科技 社会 时政 财经 房产 家居 七大主题,基本涵盖…

编译原理1.1习题 语言处理器

图源:文心一言 编译原理习题整理~🥝🥝 作为初学者的我,这些习题主要用于自我巩固。由于是自学,答案难免有误,非常欢迎各位小伙伴指正与讨论!👏💡 第1版:自…

HCIP -- ospf实验

要求: 实现: R3:int t 0/0/0ip address 172.16.1.4 255.255.255.248 (配置虚拟接口ip地址)tunnel-protocol gre p2mp (配置接口协议为p2mp)source 43.0.0.2 (配置源)osp…

【UE 材质】简单的纹理失真、溶解效果

目录 1. 失真效果 2. 溶解效果 3. 失真溶解 我们一开始有这样一个纹理 1. 失真效果 其中纹理节点“DistortTexture”的纹理为引擎自带的纹理“T_Noise01”,我们可以通过控制参数“失真度”来控制纹理的失真程度 2. 溶解效果 3. 失真溶解

奇安信天擎 rptsvr 任意文件上传漏洞复现

0x01 产品简介 奇安信天擎是奇安信集团旗下一款致力于一体化终端安全解决方案的终端安全管理系统(简称“天擎”)产品。通过“体系化防御、数字化运营”方法,帮助政企客户准确识别、保护和监管终端,并确保这些终端在任何时候都能可信、安全、合规地访问数据和业务。天擎基于…

微软推出付费版Copilot

关注卢松松,会经常给你分享一些我的经验和观点。 微软已经超越苹果,成了全球市值最高的公司,其他公司都因为AI大裁员,而微软正好相反,当然这个原因很简单:就是微软强制把AI全面接入到系统里来了。而Copilot…

Electron+React项目打包踩坑记录

首先,如何打包 写下本文的时间是 2024/01/16,搜索了网络上 ElectronReact 的打包方式,中间行不通,本文采用的方式是记录本文时 Electron 快速入门(https://www.electronjs.org/zh/docs/latest/tutorial/quick-start)记录的打包方式…

【Java 设计模式】创建型之抽象工厂模式

文章目录 1. 定义2. 应用场景3. 代码实现4. 应用示例结语 在软件开发中,抽象工厂模式是一种常见的创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式的核心思想是将一组相关的产品组合成…

spring boot shardingsphere mybatis-plus druid mysql 搭建mysql数据库读写分离架构

spring boot shardingsphere mybatis-plus druid mysql 搭建mysql数据库读写分离架构 ##关于window mysql主从搭建简单教程 传送门 window mysql5.7 搭建主从同步环境-CSDN博客 ##父pom.xml <?xml version"1.0" encoding"UTF-8"?> <project…

北交所交易手续费标准?哪家证券公司开通北交所券商交易手续费佣金万2?

北交所&#xff08;Beijing Exchange&#xff09;是指位于中国北京的一家金融交易所。北交所是中国政府为推动金融改革和国际化市场而设立的交易场所。它提供包括股票、债券、期货、外汇等多种金融产品的交易服务。北交所的目标是促进中国金融市场的发展&#xff0c;吸引国内外…

机器人持续学习基准LIBERO系列7——计算并可视化点云

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo机器人持续学习基准LIBERO系列5——…

git项目管理

Git工作流程图 git 基础指令 git init #创建本地仓库,创建成功后&#xff0c;当前目录会多一个.git文件夹 git status #查看修改状态 git add . #添加工作区到暂存区 git commit -m 注释内容 #提交暂存区到本地仓库&#xff08;commit&#xff09; git log …

PngToIco.java

PngToIco.java [PNG转ICO]为了解决今天项目PNG弄成ICO写的 package image;import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;import javax.imageio.ImageIO;import org.apache.commons.imaging.ImageFormats; import org.apache.common…

Git版本控制——分支

分支 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着可以把工作从开发主线上分离开来进行重大的Bug修改、开发新的功能&#xff0c;以免影响开发主线。 查看本地分支 git branch创建本地分支 git branch 分支名切换分支(checkout) git checkout 分支名创建…