postgresqlpostgresql入門


備註

本節概述了postgresql是什麼,以及開發人員可能想要使用它的原因。

它還應該提到postgresql中的任何大型主題,並鏈接到相關主題。由於postgresql的文檔是新的,您可能需要創建這些相關主題的初始版本。

版本

發布日期 EOL約會
9.6 2016年9月29日 2021年9月1日
9.5 2016年1月7日 2021年1月1日
9.4 情節中字 2019年12月1日
9.3 2013年9月9日 2018年9月1日
9.2 2012年9月10日 2017年9月1日
9.1 2011-09-12 2016年9月1日
9 2010-09-20 2015年9月1日
8.4 2009-07-01 2014年7月1日

如何在OSX上通過MacPorts安裝PostgreSQL

要在OSX上安裝PostgreSQL,您需要知道當前支持哪些版本。

使用此命令查看可用的版本。

sudo port list | grep "^postgresql[[:digit:]]\{2\}[[:space:]]"
 

您應該得到一個類似於以下內容的列表:

postgresql80                   @8.0.26         databases/postgresql80
postgresql81                   @8.1.23         databases/postgresql81
postgresql82                   @8.2.23         databases/postgresql82
postgresql83                   @8.3.23         databases/postgresql83
postgresql84                   @8.4.22         databases/postgresql84
postgresql90                   @9.0.23         databases/postgresql90
postgresql91                   @9.1.22         databases/postgresql91
postgresql92                   @9.2.17         databases/postgresql92
postgresql93                   @9.3.13         databases/postgresql93
postgresql94                   @9.4.8          databases/postgresql94
postgresql95                   @9.5.3          databases/postgresql95
postgresql96                   @9.6beta2       databases/postgresql96
 

在這個例子中,9.6支持最新版本的PostgreSQL,所以我們將安裝它。

sudo port install postgresql96-server postgresql96
 

您將看到如下安裝日誌:

--->  Computing dependencies for postgresql96-server
--->  Dependencies to be installed: postgresql96
--->  Fetching archive for postgresql96
--->  Attempting to fetch postgresql96-9.6beta2_0.darwin_15.x86_64.tbz2 from         https://packages.macports.org/postgresql96
--->  Attempting to fetch postgresql96-9.6beta2_0.darwin_15.x86_64.tbz2.rmd160 from https://packages.macports.org/postgresql96
--->  Installing postgresql96 @9.6beta2_0
--->  Activating postgresql96 @9.6beta2_0

To use the postgresql server, install the postgresql96-server port

--->  Cleaning postgresql96
--->  Fetching archive for postgresql96-server
--->  Attempting to fetch postgresql96-server-9.6beta2_0.darwin_15.x86_64.tbz2 from https://packages.macports.org/postgresql96-server
--->  Attempting to fetch postgresql96-server-9.6beta2_0.darwin_15.x86_64.tbz2.rmd160 from https://packages.macports.org/postgresql96-server
--->  Installing postgresql96-server @9.6beta2_0
--->  Activating postgresql96-server @9.6beta2_0

To create a database instance, after install do
 sudo mkdir -p /opt/local/var/db/postgresql96/defaultdb
 sudo chown postgres:postgres /opt/local/var/db/postgresql96/defaultdb
 sudo su postgres -c '/opt/local/lib/postgresql96/bin/initdb -D /opt/local/var/db/postgresql96/defaultdb'

--->  Cleaning postgresql96-server
--->  Computing dependencies for postgresql96
--->  Cleaning postgresql96
--->  Updating database of binaries
--->  Scanning binaries for linking errors
--->  No broken files found.
 

該日誌提供了有關安裝的其餘步驟的說明,因此我們接下來會這樣做。

sudo mkdir -p /opt/local/var/db/postgresql96/defaultdb
sudo chown postgres:postgres /opt/local/var/db/postgresql96/defaultdb
sudo su postgres -c '/opt/local/lib/postgresql96/bin/initdb -D /opt/local/var/db/postgresql96/defaultdb'
 

現在我們啟動服務器:

sudo port load -w postgresql96-server
 

驗證我們是否可以連接到服務器:

su postgres -c psql
 

你會看到postgres的提示:

psql (9.6.1)
Type "help" for help.

postgres=#
 

在這裡,您可以鍵入查詢以查看服務器是否正在運行。

postgres=#SELECT setting FROM pg_settings WHERE name='data_directory';
 

並看到回應:

                setting
------------------------------------------
/opt/local/var/db/postgresql96/defaultdb
(1 row)
postgres=#
 

輸入\ q退出:

postgres=#\q
 

你將回到shell的提示符。

恭喜!您現在在OS / X上有一個正在運行的PostgreSQL實例。

在Linux上從Source安裝PostgreSQL

依賴關係:

  • GNU Make Version> 3.80
  • ISO / ANSI C編譯器(例如gcc)
  • 像tar或gzip這樣的提取器
  • zlib的-devel的
  • readline-devel oder libedit-devel

來源: 鏈接到最新來源(9.6.3)

現在您可以提取源文件:

tar -xzvf postgresql-9.6.3.tar.gz
 

PostgreSQL的配置有很多不同的選項:

完整鏈接到完整的安裝過程

可用選項的小清單:

  • --prefix=PATH 所有文件的--prefix=PATH 路徑
  • --exec-prefix=PATH architectur-dependet文件的--exec-prefix=PATH 路徑
  • --bindir=PATH 可執行程序的--bindir=PATH 路徑
  • --sysconfdir=PATH 配置文件的--sysconfdir=PATH 路徑
  • --with-pgport=NUMBER 指定服務器的端口
  • --with-perl add perl support
  • --with-python 添加python支持
  • --with-openssl 添加openssl支持
  • --with-ldap 添加ldap支持
  • --with-blocksize=BLOCKSIZE 以KB為單位設置pagesize
    • BLOCKSIZE 必須是2的冪並且在1到32之間
  • --with-wal-segsize=SEGSIZE 設置WAL-Segment大小的大小(MB)
    • SEGSIZE 必須是1到64之間的2的冪

進入新創建的文件夾並使用所需選項運行cofigure腳本:

./configure --exec=/usr/local/pgsql
 

運行make 以創建對象文件

運行make install 以從構建的文件安裝PostgreSQL

運行make clean 來整理

對於擴展交換機,目錄cd contrib ,運行makemake install

在Mac上使用brew安裝postgresql

Homebrew稱自己是' 缺少macOS包管理器 '。它可用於構建和安裝應用程序和庫。 安裝完成後 ,您可以使用brew 命令安裝PostgreSQL及其依賴項,如下所示:

brew update
brew install postgresql
 

Homebrew通常會安裝最新的穩定版本。如果您需要另一個,那麼brew search postgresql 將列出可用的版本。如果您需要使用特定選項構建的PostgreSQL,那麼brew info postgresql 將列出支持哪些選項。如果您需要不受支持的構建選項,則可能必須自己進行構建,但仍可以使用Homebrew來安裝公共依賴項。

啟動服務器:

brew services start postgresql
 

打開PostgreSQL提示符

psql
 

如果psql抱怨您的用戶沒有相應的數據庫,請運行createdb

在GNU + Linux上安裝

在大多數GNU + Linux操作系統上,可以使用操作系統軟件包管理器輕鬆安裝PostgreSQL。

紅帽家庭

可在此處找到存儲庫: https ://yum.postgresql.org/repopackages.php

使用該命令將存儲庫下載到本地計算機

yum -y install https://download.postgresql.org/pub/repos/yum/X.X/redhat/rhel-7-x86_64/pgdg-redhatXX-X.X-X.noarch.rpm
 

查看可用包裹:

yum list available | grep postgres*
 

必要的包是:postgresqlXX postgresqlXX-server postgresqlXX-libs postgresqlXX-contrib

使用以下命令安裝它們:yum -y install postgresqlXX postgresqlXX-server postgresqlXX-libs postgresqlXX-contrib

安裝後,您將需要以服務所有者身份啟動數據庫服務(默認為postgres)。這是通過pg_ctl命令完成的。

sudo -su postgres
./usr/pgsql-X.X/bin/pg_ctl -D /var/lib/pgsql/X.X/data start 
 

要在CLI中訪問DB,請輸入psql

Debian家庭

Debian和派生的操作系統上,鍵入:

sudo apt-get install postgresql
 

這將以操作系統的軟件包存儲庫提供的默認版本安裝PostgreSQL服務器軟件包。

如果默認安裝的版本不是您想要的版本,則可以使用包管理器搜索可能同時提供的特定版本。

您還可以使用PostgreSQL項目(稱為PGD​​G )提供的Yum存儲庫來獲取不同的版本。這可能允許操作系統軟件包存儲庫尚未提供的版本。

在Windows上安裝PostgreSQL

雖然使用基於Unix的操作系統(例如Linux或BSD)作為生產服務器是一種很好的做法,但您可以在Windows上輕鬆安裝PostgreSQL(希望僅用作開發服務器)。

從EnterpriseDB下載Windows安裝二進製文件: http//www.enterprisedb.com/products-services-training/pgdownload這是一個第三方公司,由PostgreSQL項目的核心貢獻者發起,他們優化了Windows的二進製文件。

選擇最新的穩定版(非Beta版)(撰寫本文時為9.5.3版)。您很可能需要Win x86-64軟件包,但如果您運行的是32位版本的Windows(在舊計算機上很常見),請選擇Win x86-32。

注意:在Beta版和穩定版之間切換將涉及復雜的任務,如轉儲和恢復。在測試版或穩定版中升級只需要重新啟動服務。

您可以通過轉到控制面板 - >系統和安全 - >系統 - >系統類型來檢查您的Windows版本是32位還是64位,這將顯示“## - bit Operating System”。這是Windows 7的路徑,在其他版本的Windows上可能略有不同。

在安裝程序中,選擇您要使用的包。例如:

  • pgAdmin( https://www.pgadmin.org )是一個用於管理數據庫的免費GUI,我強烈推薦它。在9.6中,這將默認安裝。
  • PostGIS( http://postgis.net )提供GPS坐標,距離等地理空間分析功能,非常受GIS開發人員的歡迎。
  • 語言包為官方支持的過程語言PL / Python,PL / Perl和PL / Tcl提供了所需的庫。
  • 其他軟件包如pgAgent,pgBouncer和Slony對大型生產服務器非常有用,只需根據需要進行檢查。

稍後可以通過“Application Stack Builder”安裝所有這些可選包。

注意:還有其他非官方支持的語言,如PL / V8PL / Lua PL / Java。

打開pgAdmin並雙擊其名稱連接到您的服務器,例如。 “PostgreSQL 9.5(localhost:5432)。

從這一點開始,您可以按照優秀的書PostgreSQL:Up and Running,2nd Edition( http://shop.oreilly.com/product/0636920032144.do )進行操作。

可選:手動服務啟動類型

PostgreSQL在後台運行,與大多數程序略有不同。這在數據庫和Web服務器中很常見。它的默認啟動類型是自動,這意味著它將始終在沒有您輸入的情況下運行。

你為什麼要手動控制PostgreSQL服務?如果您在某些時候使用PC作為開發服務器,但也使用它來玩視頻遊戲,那麼PostegreSQL可能會在運行時稍微減慢您的系統速度。

你為什麼不想手動控制?如果經常這樣做,啟動和停止服務可能會很麻煩。

如果您沒有註意到速度上的任何差異並且更願意避免麻煩,那麼將其“啟動類型”保留為“自動”並忽略本指南的其餘部分。除此以外...

轉到“控制面板” - >“系統和安全” - >“管理工具”。

從列表中選擇“服務”,右鍵單擊其圖標,然後選擇“發送到” - >“桌面”以創建桌面圖標,以便更方便地訪問。

關閉“管理工具”窗口,然後從剛剛創建的桌面圖標啟動“服務”。

向下滾動,直到看到名為postgresql-x ## - 9.#的服務(例如“postgresql-x64-9.5”)。

右鍵單擊postgres服務,選擇Properties - > Startup type - > Manual - > Apply - > OK。您可以輕鬆地將其更改回自動狀態。

如果您在列表中看到其他PostgreSQL相關服務,例如“pgbouncer”或“PostgreSQL Scheduling Agent - pgAgent”,您也可以將其啟動類型更改為手動,因為如果PostgreSQL沒有運行它們就沒有多大用處。雖然這對你每次開始和停止都會更麻煩,所以這取決於你。它們不會使用與PostgreSQL本身一樣多的資源,也不會對您的系統性能產生任何明顯的影響。

如果服務正在運行,其狀態將顯示為“已啟動”,否則它將無法運行。

要啟動它,請右鍵單擊並選擇“開始”。將顯示加載提示,並且很快就會消失。如果它給你一個錯誤,請再試一次。如果這不起作用,那麼安裝會出現一些問題,可能是因為您在Windows中更改了一些設置,大多數人都沒有更改,因此找到問題可能需要進行一些調查。

要停止postgres,請右鍵單擊該服務,然後選擇“停止”。

如果在嘗試連接到數據庫時遇到錯誤,請檢查服務以確保其運行。

有關EDB PostgreSQL安裝的其他非常具體的細節,例如特定PostgreSQL版本的官方語言包中的python運行時版本,請始終參考官方EBD安裝指南 ,將鏈接中的版本更改為安裝程序的主要版本。

適用於Mac OSX的Postgres.app

可以通過下載Postgres.app獲得在Mac上安裝PostgreSQL的極其簡單的工具。
您可以更改首選項以使PostgreSQL在後台運行或僅在應用程序運行時運行。