【PostgreSQL】启航PostgreSQL之旅:基础构建与环境配置

目录

PostgreSQL概述

核心特性

安装与配置

Linux环境安装示例

Windows环境安装

基本命令与界面介绍

命令行界面(psql)


PostgreSQL概述

      PostgreSQL,通常简称为Postgres,是一种开源的对象关系型数据库管理系统(ORDBMS)。起源于伯克利的POSTGRES项目,自1996年发布第一个版本以来,已经发展成为世界上最先进的开源数据库之一。PostgreSQL以其高度的稳定性、强大的并发控制、丰富的数据类型支持以及良好的可扩展性闻名。完全支持SQL标准,并在此基础上增加了众多高级功能,如复杂的查询处理、多版本并发控制(MVCC)、触发器、视图、外键约束等。

核心特性
  1. 高级SQL支持:支持SQL:2008标准,包括窗口函数、通用表表达式、JSON和数组数据类型等。
  2. 多版本并发控制(MVCC):提供无锁读取,提高了并发性能。
  3. 事务完整性:完全支持ACID特性,确保数据的一致性和可靠性。
  4. 扩展性:用户可以通过插件扩展新的数据类型、函数、操作符等,甚至可以创建全新的索引方法或过程语言。
  5. 安全性:支持角色、权限管理和SSL连接加密,保障数据安全。
  6. 跨平台:可在多种操作系统上运行,包括Linux、Windows和macOS等。
安装与配置
Linux环境安装示例

以Ubuntu系统为例,介绍如何通过APT包管理器安装PostgreSQL:

  • 添加PostgreSQL的APT源
sudo apt-get update
sudo apt-get install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee  /etc/apt/sources.list.d/pgdg.list
  • 更新软件包列表并安装PostgreSQL
    sudo apt-get update
    sudo apt-get install postgresql-13
  • 配置PostgreSQL

    修改监听地址:默认情况下,PostgreSQL只接受本地连接。若需远程访问,编辑/etc/postgresql/version/main/pg_hba.conf,添加如下行允许特定IP或网段访问:
host    all             all             <your_ip>/32          md5

   调整配置文件:编辑/etc/postgresql/version/main/postgresql.conf,可以调整最大连接数、端口等参数。例如,要更改监听端口为5555:

listen_addresses = '*'
port = 5555

完成配置后,重启PostgreSQL服务使改动生效:

sudo systemctl restart postgresql

注:

  • 修改postgresql.conf(通常位于/etc/postgresql/14/main/)以调整内存使用、最大连接数等。
  • pg_hba.conf中配置访问控制规则,允许特定IP或网段的访问。
Windows环境安装

使用PostgreSQL的官方安装程序安装在Windows 10上:

  1. 下载安装包:访问PostgreSQL官网,下载对应版本的安装程序。
  2. 安装步骤
    • 双击运行安装程序,选择“Next”。
    • 选择安装目录,然后点击“Next”。
    • 在“Data Directory”选项中,可以保持默认或自定义数据存放位置。
    • 选择安装组件,一般情况下保留默认设置即可。
    • 设置“Account Settings”,包括超级用户(postgres用户)的密码。
    • 选择要安装的扩展组件,如pgAdmin。
    • 完成安装向导,勾选“Launch Stack Builder”以便配置数据库服务器和管理工具。
基本命令与界面介绍
命令行界面(psql)
  • 登录数据库

    psql -U postgres
  • 登录时可以指定用户名(默认为postgres)和数据库名。

  • 基本操作命令

    • \l 列出所有数据库
    • \c db_name 切换当前数据库
    • \dt 列出当前数据库中的表
    • CREATE DATABASE exampledb; 创建新数据库
    • DROP DATABASE exampledb; 删除数据库
    • 执行SQL查询,如:SELECT version(); 查看PostgreSQL版本
  • 启动pgAdmin:若安装时选择了安装pgAdmin,可以从开始菜单启动。

  • 连接数据库服务器:首次启动pgAdmin,需要创建一个新的服务器连接:

    1. 右键“Servers”,选择“Create > Server...”。
    2. 在弹出窗口中,输入连接名称、主机名/IP地址、端口、维护数据库(通常是postgres)、用户名和密码。
    3. 点击“Save”,完成连接设置。
  • 主要功能

    • 对象浏览器:浏览和管理数据库对象,如表、视图、函数等。
    • SQL编辑器:编写、执行和保存SQL脚本,支持语法高亮、代码折叠等特性。
    • 服务器状态监视:查看数据库服务器的活动会话、锁定情况、进程等实时信息。

示例:创建一个名为testdb的新数据库,并在pgAdmin中验证其存在。

  1. 命令行创建数据库
    createdb testdb
  2. 使用pgAdmin验证
    • 在pgAdmin的对象浏览器中展开“Servers > PostgreSQL 14 (localhost:5432) > Databases”。
    • 应能看到刚刚创建的testdb数据库列在其中。

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

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

相关文章

AI学习指南机器学习篇-随机森林(Random Forests)算法简介

AI学习指南机器学习篇-随机森林&#xff08;Random Forests&#xff09;算法简介 1. 引言 在机器学习领域&#xff0c;随机森林&#xff08;Random Forests&#xff09;是一种集成学习方法&#xff0c;通过组合多个决策树来进行分类和回归任务。它是一种强大且灵活的算法&…

python爬虫-爬虫的基础知识储备

爬虫就是一个不断的去抓去网页的程序&#xff0c;根据我们的需要得到我们想要的结果&#xff01;但我们又要让服务器感觉是我们人在通过浏览器浏览不是程序所为&#xff01;归根到底就是我们通过程序访问网站得到html代码&#xff0c;然后分析html代码获取有效内容的过程。下面…

【Python实战因果推断】1_因果效应异质性1

目录 From ATE to CATE Why Prediction Is Not the Answer CATE and ITE 本文将介绍应用于行业的因果推理中最有趣的发展&#xff1a;效应异质性。在此之前&#xff0c;你们了解的是一种治疗方法的一般影响。现在&#xff0c;你将专注于发现它如何对不同的人产生不同的影响。…

Java | Leetcode Java题解之第198题打家劫舍

题目&#xff1a; 题解&#xff1a; class Solution {public int rob(int[] nums) {if (nums null || nums.length 0) {return 0;}int length nums.length;if (length 1) {return nums[0];}int first nums[0], second Math.max(nums[0], nums[1]);for (int i 2; i <…

【Oracle篇】逻辑备份工具expdp(exp)/impdp(imp)和物理备份工具rman的区别和各自的使用场景总汇(第八篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

链表数组遍历输出的辨析(二者都含指针的情况下)----PTA期末复习题

输入输出三位学生的学号和信息 一开始我认为是指针&#xff0c;直接背了指针输出的方式&#xff1b;p;p!NULL;pp->next 这个是错误的 下面这个输出是正确的方式 分析怎么区分这两个 举个例子来 数组遍历&#xff1a; 链表遍历&#xff1a; 输出的结果&#xff1a; 如果将…

Android小技巧:利用动态代理自动切换线程

日常开发中&#xff0c;多线程编程是个难以避免的话题&#xff0c;开发者可以小心翼翼、谨慎地、严谨地编程来编写出高效的、安全的多线程程序&#xff0c;但是在长时间的维护中&#xff0c;难免因为其中某个人的某个疏忽而导致出现预料之外的并发问题&#xff0c;比如下面这个…

【XCharts插件】5-1、从Json中读取数据并更新图表案例(v3.0)

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 XCharts插件是一款基于UGUI的功能强大、易用、参数可配置的数据可视化图表插件。 【Unity3D…

区块链技术与数字货币

1.起源 ➢中本聪(Satoshi Nakamoto), 2008 ➢比特币:一种点对点的电子现金系统 2.分布式账本技术原理 1.两个核心技术&#xff1a; ➢以链式区块组织账本数据实现账本数据的不可篡改 ➢分布式的可信记账机制 2.共识机制&#xff1a;由谁记账 ➢目的&#xff1a; ⚫ 解…

【数据结构(邓俊辉)学习笔记】二叉搜索树03——平衡

文章目录 1. 极端退化2. 平均高度3. 理想 适度4. 歧义 等价5. 等价变换 1. 极端退化 二叉搜索树为我们同时实现对数据集高效的静态操作以及动态操作打开了一扇新的大门。 正如我们所看到的&#xff0c;从策略上&#xff0c;BST可以视作是试图将此前的向量结构以及列表结构优…

SpringBoot整合MongoDB JPA使用

一、整合MongoDB SpringDataMongoDB是 SpringData家族成员之一&#xff0c;MongoDB的持久层框架&#xff0c;底层封装了 mongodb-driver。mongodb-driver 是 MongoDB官方推出的 Java连接 MongoDB的驱动包&#xff0c;相当于JDBC驱动。 SpringBoot整合 MongoDB&#xff0c;引入…

jetson 安装 Rustdesk失败

报错: rustdesk depends on gstreamer1.0-pipewire; however: Package gstreamer1.0-pipewire is not installed. 原因&#xff1a; 对于rustdesk&#xff0c;其1.2.3 版需要gstreamer1.0-pipewire软件包&#xff0c;但是此软件包仅适用于 Ubuntu 22.04、22.10、23.04 和 2…

Python数据分析入门:探索数据集

在数据科学领域&#xff0c;Python以其简洁的语法和强大的库支持&#xff0c;成为最受欢迎的编程语言之一。无论是数据清洗、探索性数据分析还是复杂的机器学习任务&#xff0c;Python都能提供相应的工具。本文将引导你使用Python进行简单的数据分析&#xff0c;以一个公开的数…

C语言 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=‘A’,c2=‘a’。在键盘上应该如何输入?

用下面的scanf函数输入数据&#xff0c;使a3&#xff0c;b7&#xff0c;x8.5&#xff0c;y71.82&#xff0c;c1‘A’,c2‘a’。在键盘上应该如何输入&#xff1f; #include<stdio.h> int main() { int a&#xff0c;b&#xff1b; float x,y; char c1,c2; scanf(“…

k8s_如何修改k8s使用docker或者container作为容器运行时

如果 kubelet.conf 没有明确的容器运行时相关设置&#xff0c;并且你希望配置 Kubernetes 使用 Docker 或 containerd 作为容器运行时&#xff0c;可以通过以下步骤进行配置。具体的配置步骤如下&#xff1a; 配置 Kubernetes 使用 Docker 作为容器运行时 确保 Docker 已安装并…

js中的浅拷贝和深拷贝

浅拷贝Shallow Copy 浅拷贝只复制对象的顶层属性及其引用&#xff0c;而不复制这些引用所指向的对象。如果原始对象中的某个属性是一个对象或数组&#xff0c;那么浅拷贝后的对象将包含对这个内部对象或数组的引用&#xff0c;而不是这个对象或数组的一个新副本。 let obj1 …

【Mac】XnViewMP for Mac(图片浏览查看器)及同类型软件介绍

软件介绍 XnViewMP 是一款多功能、跨平台的图像查看和管理软件&#xff0c;适用于 macOS、Windows 和 Linux 系统。它是经典 XnView 软件的增强版本&#xff0c;更加现代化且功能更强大。XnViewMP 支持数百种图像格式&#xff0c;并提供多种图像处理工具&#xff0c;使其成为摄…

【摄像头标定】使用kalibr进行双目摄像头标定(ros1、ros2)

使用kalibr进行双目摄像头标定 前言标定板标定①板端准备和录制②上位机准备和标定 前言 本文不是纯用ros1进行标定&#xff0c;需要ros1和ros2通信。给使用ros2进行开发&#xff0c;但又想用kalibr标定双目摄像头的小伙伴一个教程。本文双目摄像头的数据发布使用ros2&#xf…

认识Unity中的音效

一、Audio Clip&#xff1a;音频片段 一个AudioClip对象存储了一段声音&#xff0c;可用于播放音效、背景音乐和语音对白等 ambisonic参数指示该音频片段是否是立体混响声 二、Audio Source&#xff1a;音源 用于在场景中播放AudioClip ——相当于发出声音的物体或设备。…

网络安全实战,潜伏与Python反向连接

注意:本文的下载教程,与以下文章的思路有相同点,也有不同点,最终目标只是让读者从多维度去熟练掌握本知识点。 下载教程: Python网络安全项目开发实战_潜伏与Python反向连接_编程案例解析实例详解课程教程.pdf 在网络安全领域,潜伏与反向连接技术常被黑客用于绕过防火墙和…