紅聯Linux門戶
Linux幫助

怎么在一臺樹莓派上安裝Postgres數據庫

發布時間:2017-11-18 09:49:53來源:linux.cn作者:LCTT
在你的下一個樹莓派項目上安裝和配置流行的開源數據庫 Postgres 并去使用它。
保存你的項目或應用程序持續增加的數據,數據庫是一種很好的方式。你可以在一個會話中將數據寫入到數據庫,且在下次你需要查找的時候找到它。
一個設計良好的數據庫可以做到在巨大的數據集中高效地找到數據,只要告訴它你想去找什么,而不用去考慮它是如何查找的。為一個基本的 CRUD (創建、記錄、更新、刪除)應用程序安裝一個數據庫是非常簡單的, 它是一個很通用的模式,并且也適用于很多項目。
為什么 PostgreSQL 一般被為 Postgres? 它被認為是功能和性能最好的開源數據庫。如果你使用過 MySQL,它們是很相似的。但是,如果你希望使用它更高級的功能,你會發現優化 Postgres 是比較容易的。它便于安裝、容易使用、方便安全, 而且在樹莓派 3 上運行的非常好。
本教程介紹了怎么在一個樹莓派上去安裝 Postgres;創建一個表;寫簡單查詢;在樹莓派、PC,或者 Mac 上使用 pgAdmin 圖形用戶界面;從 Python 中與數據庫交互。
掌握了這些基礎知識后,你可以讓你的應用程序使用復合查詢連接多個表。
那個時候你需要考慮的是,怎么去使用主鍵或外鍵優化及最佳實踐等等。
 
安裝
一開始,你將需要去安裝 Postgres 和一些其它的包。打開一個終端窗口并連接到因特網,然后運行以下命令:
sudo apt install postgresql libpq-dev postgresql-client 
postgresql-client-common -y
怎么在一臺樹莓派上安裝Postgres數據庫
當安裝完成后,切換到 Postgres 用戶去配置數據庫:
sudo su postgres
現在,你可以創建一個數據庫用戶。如果你創建了一個與你的Unix用戶帳戶相同名字的用戶,那個用戶將被自動授權訪問該數據庫。因此在本教程中,為簡單起見,我們將假設你使用了默認用戶 pi 。運行 createuser 命令以繼續:
createuser pi -P --interactive
當得到提示時,輸入一個密碼 (并記住它), 選擇 n  使它成為一個非超級用戶,接下來兩個問題選擇 y(譯注:分別允許創建數據庫和其它用戶)。
怎么在一臺樹莓派上安裝Postgres數據庫
現在,使用 Postgres shell 連接到 Postgres 去創建一個測試數據庫:
$ psql
> create database test;
按下 Ctrl+D 兩次從 psql shell 和 postgres 用戶中退出,再次以 pi 用戶登入。你創建了一個名為 pi 的 Postgres 用戶后,你可以從這里無需登錄憑據即可訪問 Postgres shell:
$ psql test
你現在已經連接到 "test" 數據庫。這個數據庫當前是空的,不包含任何表。你可以在psql shell里創建一個簡單的表:
test=> create table people (name text, company text);
現在你可插入數據到表中:
test=> insert into people values ('Ben Nuttall', 'Raspberry Pi Foundation');
test=> insert into people values ('Rikki Endsley', 'Red Hat');
然后嘗試進行查詢:
怎么在一臺樹莓派上安裝Postgres數據庫
怎么在一臺樹莓派上安裝Postgres數據庫
怎么在一臺樹莓派上安裝Postgres數據庫
 
pgAdmin
如果希望使用一個圖形工具去訪問數據庫,你可以使用它。 PgAdmin 是一個全功能的 PostgreSQL GUI,它允許你去創建和管理數據庫和用戶、創建和修改表、執行查詢,和如同在電子表格一樣熟悉的視圖中瀏覽結果。psql 命令行工具可以很好地進行簡單查詢,并且你會發現很多高級用戶一直在使用它,因為它的執行速度很快 (并且因為他們不需要借助 GUI),但是,一般用戶學習和操作數據庫,使用 pgAdmin 是一個更適合的方式。
關于 pgAdmin 可以做的其它事情:你可以用它在樹莓派上直接連接數據庫,或者用它在其它的電腦上遠程連接到樹莓派上的數據庫。
如果你想去訪問樹莓派,你可以用 apt 去安裝它:
sudo apt install pgadmin3
它是和基于 Debian 的系統如 Ubuntu 是完全相同的;如果你在其它發行版上安裝,嘗試與你的系統相關的等價的命令。 或者,如果你在 Windows 或 macOS 上,嘗試從 pgAdmin.org 上下載 pgAdmin。注意,在 apt 上的可用版本是 pgAdmin3,而最新的版本 pgAdmin4,在其網站上可以找到。
在同一臺樹莓派上使用 pgAdmin 連接到你的數據庫,從主菜單上簡單地打開 pgAdmin3 ,點擊 new connection 圖標,然后完成注冊,這時,你將需要一個名字(連接名,比如 test),改變用戶為 “pi”,然后剩下的輸入框留空 (或者如它們原本不動)。點擊 OK,然后你在左側的側面版中將發現一個新的連接。
怎么在一臺樹莓派上安裝Postgres數據庫
要從另外一臺電腦上使用 pgAdmin 連接到你的樹莓派數據庫上,你首先需要編輯PostgreSQL配置允許遠程連接:
1、編輯 PostgreSQL 配置文件 /etc/postgresql/9.6/main/postgresql.conf ,取消listen_addresses行的注釋,并把它的值從 localhost 改變成 *。然后保存并退出。
2、編輯 pg_hba 配置文件 /etc/postgresql/9.6/main/postgresql.conf,將 127.0.0.1/32 改變成 0.0.0.0/0 (對于IPv4)和將 ::1/128 改變成 ::/0 (對于 IPv6)。然后保存并退出。
3、重啟 PostgreSQL 服務: sudo service postgresql restart。
注意,如果你使用一個舊的 Raspbian 鏡像或其它發行版,版本號可能不一樣。
怎么在一臺樹莓派上安裝Postgres數據庫
做完這些之后,在其它的電腦上打開 pgAdmin 并創建一個新的連接。這時,需要提供一個連接名,輸入樹莓派的 IP 地址作為主機(這可以在任務欄的 WiFi 圖標上懸停鼠標找到,或者在一個終端中輸入 hostname -I 找到)。
怎么在一臺樹莓派上安裝Postgres數據庫
不論你連接的是本地的還是遠程的數據庫,點擊打開Server Groups>Servers>test >Schemas>public>Tables,右鍵單擊people表,然后選擇View Data>View top 100 Rows。你現在將看到你前面輸入的數據。
怎么在一臺樹莓派上安裝Postgres數據庫
你現在可以創建和修改數據庫和表、管理用戶,和使用 GUI 去寫你自己的查詢了。你可能會發現這種可視化方法比命令行更易于管理。
 
Python
要從一個 Python 腳本連接到你的數據庫,你將需要 Psycopg2 這個 Python 包。你可以用 pip 來安裝它:
sudo pip3 install psycopg2
現在打開一個 Python 編輯器寫一些代碼連接到你的數據庫:
import psycopg2
conn = psycopg2.connect('dbname=test')
cur = conn.cursor()
cur.execute('select * from people')
results = cur.fetchall()
for result in results:
print(result)
運行這個代碼去看查詢結果。注意,如果你連接的是遠程數據庫,在連接字符串中你將需要提供更多的憑據,比如,增加主機 IP、用戶名,和數據庫密碼:
conn = psycopg2.connect('host=192.168.86.31 user=pi 
password=raspberry dbname=test')
你甚至可以創建一個函數去運行特定的查詢:
def get_all_people():
query = """
SELECT
*
FROM
people
"""
cur.execute(query)
return cur.fetchall()
和一個包含參數的查詢:
def get_people_by_company(company):
query = """
SELECT
*
FROM
people
WHERE
company = %s
"""
values = (company, )
cur.execute(query, values)
return cur.fetchall()
或者甚至是一個增加記錄的函數:
def add_person(name, company):
query = """
INSERT INTO
people
VALUES
(%s, %s)
"""
values = (name, company)
cur.execute(query, values)
注意,這里使用了一個注入字符串到查詢中的安全的方法。
怎么在一臺樹莓派上安裝Postgres數據庫
 
現在你知道了這些基礎知識,如果你想去進一步掌握 Postgres,查看在 Full Stack Python 上的文章(https://www.fullstackpython.com/postgresql.html)。
 
本文永久更新地址:http://www.1851002.live/linux/32927.html
贵州体彩11选5查询号码