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

Postgres:Win/Linux环境安装及一键部署脚本

1.Win安装Postgres

(1)下载安装包

(2)开始安装

修改安装目录

选择要安装的组件

data也就是库表及数据的.dba文件存放目录

密码设置

 端口设置

next

next

开始安装

安装完成,Stack Builder 根据需要选择是否安装。仅仅是使用数据库的数据读写存储功能,可以不装。

(3)Navicat连接postgres

2. Linux按照Postgres

2.1 更新系统和安装依赖

首先,我们需要更新系统并安装一些依赖项。我们可以使用以下命令更新系统并安装 PostgreSQL 的依赖:

sudo yum update 
sudo yum install epel-release 
sudo yum install postgresql-server postgresql-contrib

2.2 初始化 PostgreSQL

安装完成后,我们需要初始化 PostgreSQL,这将创建一个新的 PostgreSQL 数据库集群。我们可以使用以下命令来初始化 PostgreSQL:

sudo postgresql-setup initdb

2.3 修改配置文件

在安装和初始化 PostgreSQL 后,我们需要修改 PostgreSQL 的配置文件以确保它能够正常运行。我们可以使用以下命令打开 PostgreSQL 的主配置文件:

sudo nano /var/lib/pgsql/data/postgresql.conf

我们需要更改以下配置项:

listen_addresses = '*'  # 允许所有主机连接
max_connections = 100   # 最大连接数

我们还需要在 PostgreSQL 的 pg_hba.conf 文件中设置允许连接 PostgreSQL 的用户和 IP。我们可以使用以下命令打开该文件:

sudo nano /var/lib/pgsql/data/pg_hba.conf

在文件末尾添加以下行:

host    all         all         0.0.0.0/0          md5

这将允许所有主机连接 PostgreSQL,并使用 md5 加密验证身份。

2.4 启动 PostgreSQL

在修改完 PostgreSQL 的配置文件后,我们需要启动 PostgreSQL 服务。我们可以使用以下命令启动 PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

这将启动 PostgreSQL 并设置其在系统启动时自动启动。

2.5 创建新用户和数据库

在 PostgreSQL 中,我们需要创建一个新的数据库和一个新的用户,以便我们可以使用它。我们可以使用以下命令创建一个新的 PostgreSQL 用户和数据库:

sudo su - postgres
psqlCREATE DATABASE mydatabase;
CREATE USER myuser WITH PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;

这将创建一个名为 mydatabase 的新数据库,并创建一个名为 myuser 的新用户,该用户将具有对该数据库的所有特权。

2.6 测试连接

现在,我们已经完成了 PostgreSQL 的安装和配置,我们可以使用以下命令测试连接:

psql -h localhost -U myuser -d mydatabase

这将连接到我们刚刚创建的数据库。

2.7 退出PostgreSQL命令行界面

(1)使用命令 \q 或 quit,这将退出 PostgreSQL 命令行界面并返回到 Linux shell 提示符:

postgres=# \q

(2)按下 Ctrl+D 快捷键,这将退出 PostgreSQL 命令行界面并返回到 Linux shell 提示符:

postgres=# Ctrl+D

在这两种方法中,如果您已经进行了更改但未保存,请按照屏幕上的提示输入 "\q!",这将强制退出 PostgreSQL 命令行界面并放弃所有更改。

2.8 重新设置 PostgreSQL 用户的密码

要重新设置 PostgreSQL 用户的密码,请按照以下步骤进行操作:

(1)打开终端并以 PostgreSQL 超级用户(通常是“postgres”用户)身份登录。您可以使用以下命令登录:

sudo -u postgres psql

(2)输入以下命令以修改用户密码:

ALTER USER username WITH PASSWORD 'new_password';

其中,将“username”替换为要更改密码的 PostgreSQL 用户的用户名,并将“new_password”替换为新密码。例如,要将用户名为“myuser”的 PostgreSQL 用户的密码设置为“mypassword”,可以执行以下命令:

ALTER USER myuser WITH PASSWORD 'mypassword';

(3)完成后,按下 Ctrl+D 快捷键或输入 \q 命令退出 PostgreSQL 命令行界面。

现在您可以使用新密码连接到 PostgreSQL 数据库了。请注意,如果您不知道要更改的 PostgreSQL 用户的用户名,可以在 PostgreSQL 命令行界面中使用以下命令查看用户列表:

\du

此命令将显示 PostgreSQL 数据库中的所有用户和其权限。

3. 一键部署脚本

#!/bin/bash# 安装 PostgreSQL
echo "正在安装 PostgreSQL..."
yum -y update
yum -y install wget
yum -y install gcc
yum -y install make
yum -y install readline-devel
yum -y install zlib-devel
wget https://ftp.postgresql.org/pub/source/v13.3/postgresql-13.3.tar.gz
tar zxvf postgresql-13.3.tar.gz
cd postgresql-13.3
./configure
make
make install# 添加 PostgreSQL 用户和组
echo "正在添加 PostgreSQL 用户和组..."
groupadd postgres
useradd -g postgres postgres# 初始化 PostgreSQL 数据库
echo "正在初始化 PostgreSQL 数据库..."
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/# 启动 PostgreSQL 服务
echo "正在启动 PostgreSQL 服务..."
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data/ -l logfile start# 设置 PostgreSQL 密码
echo "请设置 PostgreSQL 超级用户 'postgres' 的密码:"
/usr/local/pgsql/bin/psql -c "ALTER USER postgres WITH PASSWORD 'your_password';"echo "PostgreSQL 安装完成。"

将上述脚本保存为一个名为“install_postgresql.sh”的文件,并将文件传输到您的 Linux 服务器上。然后,通过以下命令将其设置为可执行文件:

chmod +x install_postgresql.sh

最后,运行以下命令以执行脚本:

./install_postgresql.sh

脚本将自动执行 PostgreSQL 的安装、初始化、启动、密码设置等步骤。请注意,在安装过程中可能会提示您输入密码等信息。根据需要输入正确的信息即可。

相关文章:

Postgres:Win/Linux环境安装及一键部署脚本

1.Win安装Postgres (1)下载安装包 (2)开始安装 修改安装目录 选择要安装的组件 data也就是库表及数据的.dba文件存放目录 密码设置 端口设置 next next 开始安装 安装完成,Stack Builder 根据需要选择是否安装。仅仅是…...

每日一题144——数组大小减半

给你一个整数数组 arr。你可以从中选出一个整数集合,并删除这些整数在数组中的每次出现。 返回 至少 能删除数组中的一半整数的整数集合的最小大小。 示例 1: 输入:arr [3,3,3,3,5,5,5,2,2,7] 输出:2 解释:选择 {3,…...

运维必懂的13条高效工作秘诀

正确做事,更要做正确的事 “正确地做事”强调的是效率,重视做一件工作的最好方法;“做正确的事”强调的是效能,重视时间的最佳利用——这包括是做或者不做某项工作。 实际上,第一重要的却是效能而非效率,…...

【牛客刷题专栏】0x26:JZ25 合并两个排序的链表(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…...

5/5~5/7总结

把socket通信改成了分成短连接和长连接,登录前的所有操作都是短连接,每次都关闭连接,如果登录成功了就保持该socket连接,登录成功之后的所有操作,修改资料,发信息等都用该socket, 服务端和客户…...

重要通知|Sui测试网将于5月11日重置

致Sui社区成员们: 正如之前公告所述,部分社区成员发现测试网可能会定期清除数据并重新启动。鉴于此,我们宣布计划将于2023年5月11日进行首次测试网清除。 对于想要继续读取和访问当前测试网络的社区成员,请使用由Mysten Labs在…...

教你快速把heic格式转化jpg,4种方法操作简单

教你快速把heic格式转化jpg的方法,因为HEIC格式图片通常出现在苹果公司的iOS 11操作系统及之后的版本中,这是因为苹果公司在这些版本中采用了HEIF(高效图像格式)作为默认的照片格式来替代JPEG格式。同时,需要注意的是&…...

交互式数据分析和处理新方法:pandas-ai =Pandas + ChatGPT

Python Pandas是一个为Python编程提供数据操作和分析功能的开源工具包。这个库已经成为数据科学家和分析师的必备工具。它提供了一种有效的方法来管理结构化数据(Series和DataFrame)。 在人工智能领域,Pandas经常用于机器学习和深度学习过程的预处理步骤。Pandas通…...

FIR滤波

参考来源: https://www.zhihu.com/question/323353814 本节主要围绕以下几个问题进行描述: 什么是FIR滤波器时域的卷积频域的相乘 关于FIR FIR滤波就是在时域上卷积的过程。将含噪声信号与低通滤波器的傅里叶逆变换值进行卷积,这个过程就是…...

Python小姿势 - Python中的类型检查

Python中的类型检查 在Python中,类型检查是通过内置函数isinstance()来实现的。 isinstance() 函数用于判断一个对象是否是一个已知的类型,类似 type()。 isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型。 isinstance() 会…...

人工智能前景

人工智能AI的未来非常广阔和光明。随着科技的不断发展和普及,人工智能已经开始逐渐融入我们生活的方方面面,比如智能家居、智能医疗、无人驾驶等等。未来,随着更多的应用场景被开拓和挖掘,人工智能的应用范围将会越来越广泛&#…...

python并发编程学习笔记--生产者消费者模型 day02

目录 1. 什么是生产者消费者模型 2. 为什么引入生产者消费者模型 3. 如何实现 4. 示例 1. 什么是生产者消费者模型 生产者 : 程序中负责产生数据的一方消费者 : 程序中负责处理数据的一方 2. 为什么引入生产者消费者模型 在并发编程中, 生产者消费者模式通过一个容器来解…...

彩蛋丨利用R语言脚本实现批量合并Excel表格,再也不用手动点来点去了!

利用R语言脚本实现批量合并Excel表格 在整理数据的时候遇到一个问题:假如有很多个excel表,分别存放了一部分数据,现在想要快速把这些表格的数据汇总到一起,如何用R语言快速完成呢?本文分享一个脚本,能够自动…...

深入学习MYSQL-数据操纵及视图

前言 本博客中的例子和文字大部分来源于书籍《mysql必会知识》,后续会根据更多的书籍不断完善此笔记。 插入操作 可以这种方式向数据库插入两条数据,mysql和pg都支持这种写法。在实战中我们应该更多的使用这种写法,因为数据库的批量操作会…...

深入讲解eMMC简介

1 eMMC是什么 eMMC是embedded MultiMediaCard的简称,即嵌入式多媒体卡,是一种闪存卡的标准,它定义了基于嵌入式多媒体卡的存储系统的物理架构和访问接口及协议,具体由电子设备工程联合委员会JEDEC订立和发布。它是对MMC的一个拓展&#xff0…...

ICV:中国车载超声波雷达市场规模预计2024年可达20亿美元

近年来,由于市场对车辆先进安全功能的需求的增加,汽车超声波传感器市场一直保持稳步增长。ICV估计,车载超声波传感器全球市场预计在2022年至2027年之间以11.5%的复合年增长率增长,这种增长是由越来越多的高级驾驶辅助系…...

PointNet:利用深度学习对点云进行3D分类和语义分割

PointNet:利用深度学习对点云进行3D分类和语义分割 参考自,PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 代码仓库地址为:https://github.com/charlesq34/pointnet/ 介绍 这次介绍的是一个比较基础的工作…...

第四十二章 Unity 下拉框 (Dropdown) UI

本章节我们介绍下拉框 (Dropdown),我们点击菜单栏“GameObject”->“UI”->“Dropdown”,然后调整它的位置,效果如下 其实它的本质就是一个下拉列表,然后选择列表中的一个选项而已。大家在很多网页中应该可以看到类似的UI元…...

STL常用梳理——STACK、QUEUE

STL——适配器篇 1、ListSTL list 容器介绍list使用 2、适配器介绍3、Deque容器Stack、Queue适配器实现 1、List STL list 容器介绍 STL list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可…...

Unity物理系统基本概念

前言:物理引擎仅仅是对现实物理的一种近似模拟。无论是从运算精度和时间连续性都不够准确。目的只是为了让游戏具备令人信服的物理表现,增强游戏的表现力和用户的沉浸感。 一、刚体Rigidbody 刚体是让物体产生物理行为的主要组件。一旦挂载了Rigidbody组…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

synchronized 学习

学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

golang循环变量捕获问题​​

在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下: 问题背景 看这个代码片段: fo…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​:下载安装 ​​De…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...