postgresql入门

多年来,PostgreSQL一直是企业软件和开放源代码中保存最好的秘密之一-功能强大,健壮且经过专家维护的关系数据库。 MySQL可能更广为人知,但PostgreSQL提供了MySQL刚开始提供的许多功能。

在本文中,我将逐步介绍设置和运行基本PostgreSQL安装的步骤。 大多数讨论将针对完全重新开始的人们,但我将介绍有关从以前的PostgreSQL安装或其他数据库解决方案迁移数据的详细信息。 最后,本文重点介绍PostgreSQL 10系列发行版,即撰写本文时PostgreSQL最新和最新版本。

[社区: 谁真正为开源做出了贡献 。 | 庆祝活动: 开源20年:改变世界的历史 。 | 相反: 20年过去了,开源并没有像承诺的那样改变世界 。 ]

选择您的PostgreSQL平台

PostgreSQL可用于所有主要操作系统的二进制形式:Windows的台式机和服务器版本,Linux,MacOS的所有流行版本以及Solaris等企业中使用的其他一些OS。

总的来说,PostgreSQL在所支持的各种平台上的功能都是相同的。 我们将在下面详细讨论该规则的一些例外情况,因此请记住这些例外情况如何影响任何部署或应用程序开发计划。

在Linux上安装PostgreSQL

Linux发行版在软件安装和维护方面有很大不同:不同的软件包管理器,不同的软件包格式,不同的软件存储库理念。 PostgreSQL不能免除这些差异,这可能是在您的平台上获取软件的最新版本的障碍。

例如, Ubuntu在其APT存储库中维护PostgreSQL版本。 如果它不是最新版本,则需要将apt.postgresql.org存储库添加到您的回购列表中,然后从那里获取PostgreSQL。

对于Red Hat和Fedora Linux,每个版本库中都包含一个PostgreSQL版本。 与Red Hat Enterprise Linux相比,Fedora的更新频率更高(每年大约两次),并且采用新版本的应用程序的速度要快得多,但是无论哪种情况,通过存储库提供的PostgreSQL版本可能都不是您想要的版本。 例如,在Red Hat Enterprise Linux的默认存储库中,您找不到比9.2更高的PostgreSQL版本。

因此,为Red Hat或Fedora安装最新版本的PostgreSQL最可靠方法是直接通过交互式下载页面从PostgreSQL或从PostgreSQLyum存储库下载安装工件。

可从Docker Hub获得 Linux上每个主要PostgreSQL版本的Docker容器映像。 请注意,您将需要为容器提供用于持久数据存储的位置。 默认位置是/var/lib/postgresql/data 。 您可以通过编辑PGDATA环境变量来指向其他位置。

Linux上的另一个注意事项是要使用哪个文件系统来存储PostgreSQL数据。 过去的基准测试通常偏爱XFS或Ext4,尽管根据链接文章,它们必须配置特定的选项(例如, nobarrier )才能获得最佳效果。 尽管PostgreSQL FAQ引用ZFS的委派管理和快照功能,但Ubuntu是当今唯一捆绑ZFS的主要Linux发行版。 在其他Linux发行版中,您将必须自行设置ZFS。

在MacOS上安装PostgreSQL

Mac用户经常依赖Homebrew ,它是MacOS的开源软件包管理器,已经成为从命令行在Mac上安装开源项目的实际方法。 Homebrew允许您使用一个命令( brew install postgresql ) 安装PostgreSQL及其所有依赖项。

在MacOS上安装PostgreSQL另一种方法是Postgres.app ,这是将PostgreSQL重新包装为常规Mac应用程序的第三方。 该网站提供了最新版本的PostgreSQL和所有主要的PostgreSQL GUI客户端的安装程序,甚至在需要时进行自我更新。 Postgres.app还为您执行一些自动预配置,例如初始化数据目录和用户数据库,并捆绑了许多常用工具,如pg_upgrade

在Windows上安装PostgreSQL

那些希望在Windows上设置PostgreSQL用户可以选择由第三方打包的安装程序,从简单的.ZIP存档到交互式GUI驱动的安装程序,应有尽有。

  • BigSQL的图形安装程序是基本而直接的。 它仅安装PostgreSQL和pgAdmin,在安装过程中提示用户基本的安装信息-数据目录,主密码等。
  • EnterpriseDB安装程序提供了更多的安装时选项。 其中包括“ Stack Builder”,该工具用于下载和安装大量其他工具:数据库驱动程序,其他版本的PostgreSQL(如果需要并行运行它们),EnterpriseDB自己的PostgreSQL附加组件以及PostgreSQLSlony-I复制系统。 对于专家来说,EnterpriseDB还提供了一个简单的.ZIP存档,仅此而已。
  • 如果您想在Windows上运行PostgreSQL而不进行安装或保留任何数据,可以使用PostgreSQL Portable 。 为PortableApps应用程序启动器打包,它在单个目录中提供了完整的PostgreSQL服务器实例,而没有外部依赖性。 这对于在软件安装受到限制的桌面上进行测试,或要将PostgreSQL工作限制在非系统或可移动驱动器上的桌面非常有用。

在Windows上运行PostgreSQL时要牢记的一个重要警告是,在给定的时间内PostgreSQL可以保持打开状态的连接数限制约为125。 此限制仅在PostgreSQL作为服务运行时适用,而不是从命令行调用。

根据PostgreSQL Wiki ,这是因为“ PostgreSQL依赖的某些库依赖于user32.dll,后者从称为Desktop Heap的区域分配内存。” 由于堆的大小是固定的,并且每个连接都会消耗一定数量的内存,因此大约125个以上的连接可能会发生故障。

就是说,在大多数使用情况下这不太可能成为问题,因为很少有人需要与PostgreSQL同时建立许多直接连接。 设计良好的应用程序可以使用连接池来避免遇到连接限制。 无论如何,连接池都是您应该做的事情,以保持与数据库的连接数与服务器上可用的硬件线程数相称。

在Linux上配置PostgreSQL

如果您使用上述的PostgreSQL图形安装程序之一,尤其是Windows,则将逐步完成运行PostgreSQL安装所需的步骤。 但是,在Linux中,大多数情况下,您需要自己采取这些步骤。

在Fedora Linux上配置PostgreSQL

PostgreSQL 10包含在Fedora 28的默认存储库中,因此运行sudo dnf install postgresql-server postgresql-contrib将直接安装这些位。 之后,您可能希望启用PostgreSQL在引导时启动:

sudo systemctl enable postgresql

您还需要手动运行PostgreSQL安装脚本来创建初始数据库:

sudo postgresql-setup --initdb --unit postgresql

设置postgres 系统密码,即PostgreSQL服务运行帐户的密码:

sudo passwd postgres

启动PostgreSQL服务器:

sudo systemctl start postgresql

然后设置postgres 内部用户帐户的密码,即用于直接连接到PostgreSQL帐户。 运行psql命令行应用程序以连接到PostgreSQL,然后发出命令\password postgres (注意前导反斜杠)。

Fedora Wiki中提供了许多有关在Fedora Linux上安装PostgreSQL附加说明,但是这些步骤对于基本设置而言已足够。

在Ubuntu Linux上配置PostgreSQL

Ubuntu 18.04的默认存储库中包括PostgreSQL 10,因此设置过程与Fedora的相似,但更加简化:

  • 安装基本软件包:
    sudo apt update
    sudo apt install postgresql postgresql-contrib
  • 设置用户帐号密码:
    sudo passwd postgres
  • 将PostgreSQL服务设置为自动启动:
    sudo systemctl enable postgresql

    sudo systemctl start postgresql
  • 更改用户并连接到服务器进行测试:
    sudo -i -u postgres
    psql

请注意,这里不需要postgresql-setup步骤。 安装过程包含执行该步骤所需的触发器。

在PostgreSQL版本之间迁移数据

您将要采取的最后步骤之一是将数据从PostgreSQL任何旧实例迁移到新实例。 从版本10开始,PostgreSQL具有三种在数据库升级期间迁移数据的主要方式。

  • pg_upgrade实用程序是在PostrgreSQL版本之间迁移数据的首选方法。 当您同时安装新版本的PostgreSQL和旧版本的PostgreSQL时,通常使用它。 您从新安装中运行pg_upgrade ,将其指向旧安装,然后将其移到数据上。 pg_upgrade利用PostgreSQL数据格式的点修订之间的一致性来加快迁移过程,因此它不仅是最方便的迁移方式,而且通常是最快的方式。
  • 执行升级/迁移的另一种方法是使用PostgreSQL复制(例如Slony)。 在这里,您可以使用新版本的PostgreSQL为运行旧版本的服务器创建备用服务器。 此方法导致的停机时间最少,因为复制是在后台进行的。 复制完成后,您要做的就是将所有连接从旧服务器重定向到新服务器。 但是,如果您首先没有使用复制,则可能涉及跳过太多的麻烦。
  • pg_dumpall实用程序将PostgreSQL服务器的全部内容导出到一个或多个SQL转储文件。 然后,生成的脚本或归档文件可以在新服务器上执行或导入到新服务器中。 还可以并排设置新旧服务器,并使用pg_dumpall来“管道”它们之间的转储操作。 使用pg_dumpall的最大缺点是它很慢,但是可以用作绝对的回退方法。

在Windows,MacOS或Linux上安装pgAdmin 4

PostgreSQL第三方管理工具pgAdmin 4提供了用于管理PostgreSQL安装的有用的Web GUI。 不幸的是,由于该工具是用Python编写的,因此从某种意义上来说很难启动和运行,并且依赖于该语言。

MacOS和Windows用户可以从pgAdmin网站下载pgAdmin 4的二进制安装程序 。

对于Ubuntu, 有一个APT软件包 。 Ask Ubuntu论坛中还有一篇帖子,介绍了安装pgAdmin 4,使其运行并创建启动脚本的便捷快捷方式所需的步骤。

对于Fedora和Red Hat, 有一个RPM软件包 。 但是,在撰写本文时,RPM软件包有一个小错误,其中省略了主要的Python软件包。 下面的食谱复制了上一个链接的许多步骤,其中包括一个额外的步骤(第2行),该步骤可解决此问题:

$ sudo dnf install pgadmin4
$ sudo dnf install python3-flask-babelex
$ sudo /usr/pgadmin4/bin/pgadmin4-web-setup.sh
$ pgadmin4

最后一个命令启动pgAdmin 4后端,最后启动一个Web浏览器来查看它。

如果您是Docker用户,则可以通过将Docker容器与pgAdmin 4及其所有依赖项一起使用并使用来避免大部分麻烦。

翻译自: https://www.infoworld.com/article/3300799/postgresql-tutorial-get-started-with-postgresql-10.html

postgresql入门

postgresql入门_PostgreSQL教程:PostgreSQL 10入门相关推荐

  1. python入门测试教程_Python测试入门

    python入门测试教程 This tutorial is for anyone who has written a fantastic application in Python but hasn' ...

  2. python编程入门经典教程-python编程入门经典

    第七章主要是文件操作相关,这么看用python---便,是一个不错的工具. <Python编程入门经典>主要内容:介绍用于存储和操作数据的变量的概念:讨论用于读写数据的文件和输入/输出:总 ...

  3. 【笔记】《adobe premiere cc PR入门基础教程,新手入门系列》

    视频B站有,很基础的教程,记录关键词,日后检索可以用. 看完只能做出粗糙的剪辑,要做到精细且高效还需要结合项目继续学习. 1.基础知识: 像素 像素长宽比 RGB通道,α通道:透明信息 颜色=色相+饱 ...

  4. Scrapy爬取图片网站——最详细的入门爬虫教程,新手入门干货,不进来看一下?

    开始前准备 这次爬虫使用scrapy,所以用到的工具必然是python3.7,scrapy,pycharm这些东西, 目标网站:http://pic.netbian.com 彼岸图网,个人非常喜欢的图 ...

  5. 【仿真建模】第一课:AnyLogic入门基础教程 - 行人库入门讲解

    文章目录 一.AnyLogic介绍 二.设置 2.1 设置中文 三.新建项目 四.行人库介绍 五.创建新行人 六.切换3D视角 七.增加墙 八.行人密度图 一.AnyLogic介绍 二.设置 2.1 ...

  6. Maya基础入门学习教程

    Maya基础入门学习教程 视频:.MKV, 1280x720, 共57节课 时长 4小时25分钟,3GB 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕 指导老师:Shane Whitt ...

  7. [转载] json字符串转list_Python入门进阶教程JSON操作

    参考链接: python json 0: 入门介绍 「关注我,和我一起放下灵魂,让灵魂去搬砖.」 作者:一叶 介绍:放不下灵魂的搬砖者 全文共1225字,阅读全文需6分钟 Python版本3.8.0, ...

  8. 超完整 Python基础入门知识教程

    本书旨在帮助Python开发人员发现该语言和相关库的突出特性,并编写简单.流畅.易于阅读和易于维护的代码.特别是生成器.属性描述符(ORM的键)和Python表达式的对象在数据库处理过程中的具体应用: ...

  9. PostgreSQL教程:PostgreSQL 10入门

    多年来,PostgreSQL一直是企业软件和开放源代码中保存最好的秘密之一,它是一个功能强大,健壮且经过专家维护的关系数据库. MySQL可能更广为人知,但PostgreSQL提供了MySQL刚开始提 ...

最新文章

  1. 怎么把项目推到gitlab上_Gitlab利用Webhook+jenkins实现自动构建与部署
  2. python 是什么类型的语言-Python什么意思是一门什么样的语言
  3. 神经病win10无法验证数字签名
  4. 安装MySql出现Error Nr.1045的解决办法
  5. 孙正义重申:计划在五年内将芯片设计公司Arm重新上市
  6. java partialfunction,scala中方法和函数的区别
  7. java 创建ppt文件怎么打开文件,JAVA读取PPT文件
  8. 叫板英特尔,英伟达发布首个 CPU,集齐“三芯”!
  9. allegro 丝印 对齐_如何对齐丝印 - Cadence allegro PCB 教程
  10. 语义分割VOC2012标签处理
  11. SSD人脸检测以及FDDB检测结果分析
  12. 手机邮箱设置qq服务器,手机设置qq邮箱
  13. PCB设计经典资料学习汇总
  14. 万维钢:但是人终将老去
  15. 计算机研究生论文期刊,经典计算机研究生小论文参考文献 计算机研究生小核心期刊参考文献哪里找...
  16. 程序员常用十大算法(四):KMP算法 与 暴力匹配算法 解决字符串匹配问题
  17. python html做界面_用Html来写Python桌面软件的UI界面-htmlPy
  18. AriaNg | 一款基于aria2高速图形化界面下载器
  19. GPU虚拟化桌面云方案介绍-概述、场景及优势
  20. Windows Vista SP1

热门文章

  1. tp5 php post方式提交无提示,使用TP5框架时,代码提交到GitHub,无法提交thinkphp核心库...
  2. 计算机系老师带教记录册,毕业论文指导手册指导老师指导记录.docx
  3. Speedoffice(Excel)中插入的图片怎么铺满整个页面
  4. 【Mark】计算机组成原理
  5. (四)electron尝试使用win32 API——node-gpy到底是干嘛的?
  6. 三国杀游戏服务器维护,运营十余年,注册用户超过2亿,这款老游戏如何保持生命力?...
  7. 校园O2O商铺平台-商品类别模块
  8. 【数据库基础】数据库中隔离性的四种级别及锁机制
  9. Mysql数据库——函数(grope by总结)
  10. 花式实现时间轴,样式由你来定!