多年来,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或从PostgreSQL的yum存储库下载安装工件。

可从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附加组件以及用于PostgreSQL的Slony-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及其所有依赖项一起使用并使用来避免大部分麻烦。

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

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

  1. PostGreSQL教程_postgis教程

    PostgreSQL IP地址访问配置 PostGIS常用函数介绍 PostgreSQL表间复制语句 postgis之Polygon/MultiPolygon in a single column:面 ...

  2. postgresql入门_PostgreSQL教程:PostgreSQL 10入门

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

  3. Windows 10 安装配置连接PostgreSQL教程

    Windows 10 安装配置连接PostgreSQL教程 1.1 PostgreSQL 下载 1.2 配置环境变量 1.3 PostgreSQL 初始化 1.4 创建postgres用户 1.5 启 ...

  4. PostgreSQL 教程

    序言 整理下~整理下~PostgreSQL 心情不顺就学习,就整理文献cuiyaonan2000@163.com 整体看了下api总的来说就是多了一个schema,其它的差不了多少~~~ 参考资料: ...

  5. C# PostgreSQL 教程

    C# PostgreSQL 教程展示了如何在 C# 中对 PostgreSQL 进行编程.它涵盖了使用 C# 进行 PostgreSQL 编程的基础知识. C# 教程是关于 C# 语言的综合教程. P ...

  6. 阿里云 Centos7 安装PostgreSQL教程

    阿里云 Centos7 安装PostgreSQL教程 1.选择版本 2. 选择平台 3. 选择架构 4. 安装repository RPM 5. 安装客户端包 6. 可选的服务端安装包 7. 可选的初 ...

  7. Postgresql 1小时快速入门

    1.什么是PostgreSql? PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),是从伯克利写的 POSTGRES 软件包发展而来的.经过十几年的发展, PostgreSQ ...

  8. linux 安装postgresql教程

    linux 安装postgresql教程 下载软件 pgsql官网地址:https://www.postgresql.org/,进入后点击download就来到下载页,这里点击Linux下面的Othe ...

  9. PostgreSQL教程--Ubuntu下PostgreSQL 安装教程

    1.环境信息 [背景]项目中使用到PostgreSQL,所以在家安装PostgreSQL数据库进行学习. [环境]宿主机windows.虚拟机Ubuntu PostgreSQL 12.4  :Ubun ...

最新文章

  1. NSURLProtectionSpace 证书认证的上下文
  2. Linux的环境变量
  3. ITK:越界像素返回常数值
  4. 斐波那契数列的鬼畜的性质
  5. android surfaceview 大小_Android 使用Camera2 API采集视频数据
  6. 关于如何控制一个页面的Ajax读数据只读一次的简单解决办法!
  7. spring 中scope的singleton和prototype区别
  8. 合并出错:svn Working copy and merge source not ready for reintegration
  9. php_2017手册,PHP中文手册下载-PHP中文手册官方2017(带用户注释)chm版-东坡下载
  10. 1024程序员节最新福利之2018最全大数据资料集合
  11. 用极域课堂软件卸载软件
  12. HDU5391米勒拉宾
  13. 什么意思中文_中文十级考题,请解释这四句话是什么意思!
  14. 爱博精电亮相四川省节能环保品牌推广全川行——乐山站
  15. Java之BlockingQueue
  16. 经典美剧《越狱》口语精华及经典台词
  17. 5年开发经验的阿里巴巴Java程序员分享从业心得总结,帮助还在迷茫的朋友
  18. 服务器虚拟化发展现状_无服务器艺术的现状
  19. QQ机器人思路理解(C++、CQ)
  20. 《程序员的自我修养》(陈逸鹤)读书笔记

热门文章

  1. 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
  2. python虚拟机分布式爬虫_分布式爬虫实战
  3. ESP32学习笔记(48)——WiFi蓝牙网关
  4. 注册表修改3389端口号
  5. 基于OneData的数据仓库建设方案
  6. 截屏录屏工具(免费解压版)
  7. 计算机图纸学绘制钻石图案,ai怎么绘制钻石图形? AI画钻石标志的教程
  8. java ee与java se 区别
  9. BigDecimal使用2--保留小数点位数
  10. 微信公众号开发 短视频 去水印 抖音 快手