PostgreSQL教程:PostgreSQL 10入门
多年来,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入门相关推荐
- PostGreSQL教程_postgis教程
PostgreSQL IP地址访问配置 PostGIS常用函数介绍 PostgreSQL表间复制语句 postgis之Polygon/MultiPolygon in a single column:面 ...
- postgresql入门_PostgreSQL教程:PostgreSQL 10入门
postgresql入门 多年来,PostgreSQL一直是企业软件和开放源代码中保存最好的秘密之一-功能强大,健壮且经过专家维护的关系数据库. MySQL可能更广为人知,但PostgreSQL提供了 ...
- Windows 10 安装配置连接PostgreSQL教程
Windows 10 安装配置连接PostgreSQL教程 1.1 PostgreSQL 下载 1.2 配置环境变量 1.3 PostgreSQL 初始化 1.4 创建postgres用户 1.5 启 ...
- PostgreSQL 教程
序言 整理下~整理下~PostgreSQL 心情不顺就学习,就整理文献cuiyaonan2000@163.com 整体看了下api总的来说就是多了一个schema,其它的差不了多少~~~ 参考资料: ...
- C# PostgreSQL 教程
C# PostgreSQL 教程展示了如何在 C# 中对 PostgreSQL 进行编程.它涵盖了使用 C# 进行 PostgreSQL 编程的基础知识. C# 教程是关于 C# 语言的综合教程. P ...
- 阿里云 Centos7 安装PostgreSQL教程
阿里云 Centos7 安装PostgreSQL教程 1.选择版本 2. 选择平台 3. 选择架构 4. 安装repository RPM 5. 安装客户端包 6. 可选的服务端安装包 7. 可选的初 ...
- Postgresql 1小时快速入门
1.什么是PostgreSql? PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),是从伯克利写的 POSTGRES 软件包发展而来的.经过十几年的发展, PostgreSQ ...
- linux 安装postgresql教程
linux 安装postgresql教程 下载软件 pgsql官网地址:https://www.postgresql.org/,进入后点击download就来到下载页,这里点击Linux下面的Othe ...
- PostgreSQL教程--Ubuntu下PostgreSQL 安装教程
1.环境信息 [背景]项目中使用到PostgreSQL,所以在家安装PostgreSQL数据库进行学习. [环境]宿主机windows.虚拟机Ubuntu PostgreSQL 12.4 :Ubun ...
最新文章
- NSURLProtectionSpace 证书认证的上下文
- Linux的环境变量
- ITK:越界像素返回常数值
- 斐波那契数列的鬼畜的性质
- android surfaceview 大小_Android 使用Camera2 API采集视频数据
- 关于如何控制一个页面的Ajax读数据只读一次的简单解决办法!
- spring 中scope的singleton和prototype区别
- 合并出错:svn Working copy and merge source not ready for reintegration
- php_2017手册,PHP中文手册下载-PHP中文手册官方2017(带用户注释)chm版-东坡下载
- 1024程序员节最新福利之2018最全大数据资料集合
- 用极域课堂软件卸载软件
- HDU5391米勒拉宾
- 什么意思中文_中文十级考题,请解释这四句话是什么意思!
- 爱博精电亮相四川省节能环保品牌推广全川行——乐山站
- Java之BlockingQueue
- 经典美剧《越狱》口语精华及经典台词
- 5年开发经验的阿里巴巴Java程序员分享从业心得总结,帮助还在迷茫的朋友
- 服务器虚拟化发展现状_无服务器艺术的现状
- QQ机器人思路理解(C++、CQ)
- 《程序员的自我修养》(陈逸鹤)读书笔记