久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何在一臺(tái)樹莓派上安裝Postgres數(shù)據(jù)庫

共計(jì) 4158 個(gè)字符,預(yù)計(jì)需要花費(fèi) 11 分鐘才能閱讀完成。

這篇文章將為大家詳細(xì)講解有關(guān)如何在一臺(tái)樹莓派上安裝 Postgres 數(shù)據(jù)庫,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

在你的下一個(gè)樹莓派項(xiàng)目上安裝和配置流行的開源數(shù)據(jù)庫 Postgres 并去使用它。

保存你的項(xiàng)目或應(yīng)用程序持續(xù)增加的數(shù)據(jù),數(shù)據(jù)庫是一種很好的方式。你可以在一個(gè)會(huì)話中將數(shù)據(jù)寫入到數(shù)據(jù)庫,并且在下次你需要查找的時(shí)候找到它。一個(gè)設(shè)計(jì)良好的數(shù)據(jù)庫可以做到在巨大的數(shù)據(jù)集中高效地找到數(shù)據(jù),只要告訴它你想去找什么,而不用去考慮它是如何查找的。為一個(gè)基本的 CRUD(創(chuàng)建、記錄、更新、刪除)應(yīng)用程序安裝一個(gè)數(shù)據(jù)庫是非常簡單的,它是一個(gè)很通用的模式,并且也適用于很多項(xiàng)目。

為什么 PostgreSQL 一般被為 Postgres?它被認(rèn)為是功能和性能 *** 的開源數(shù)據(jù)庫。如果你使用過 MySQL,它們是很相似的。但是,如果你希望使用它更高級(jí)的功能,你會(huì)發(fā)現(xiàn)優(yōu)化 Postgres 是比較容易的。它便于安裝、容易使用、方便安全,而且在樹莓派 3 上運(yùn)行的非常好。

本教程介紹了怎么在一個(gè)樹莓派上去安裝 Postgres;創(chuàng)建一個(gè)表;寫簡單查詢;在樹莓派、PC,或者 Mac 上使用 pgAdmin 圖形用戶界面;從 Python 中與數(shù)據(jù)庫交互。

你掌握了這些基礎(chǔ)知識(shí)后,你可以讓你的應(yīng)用程序使用復(fù)合查詢連接多個(gè)表,那個(gè)時(shí)候你需要考慮的是,怎么去使用主鍵或外鍵優(yōu)化及 *** 實(shí)踐等等。

安裝

一開始,你將需要去安裝 Postgres 和一些其它的包。打開一個(gè)終端窗口并連接到因特網(wǎng),然后運(yùn)行以下命令:

sudo apt install postgresql libpq-dev postgresql-client postgresql-client-common -y

installing postgres

當(dāng)安裝完成后,切換到 Postgres 用戶去配置數(shù)據(jù)庫:

sudo su postgres

現(xiàn)在,你可以創(chuàng)建一個(gè)數(shù)據(jù)庫用戶。如果你創(chuàng)建了一個(gè)與你的 Unix 用戶帳戶相同名字的用戶,那個(gè)用戶將被自動(dòng)授權(quán)訪問該數(shù)據(jù)庫。因此在本教程中,為簡單起見,我們將假設(shè)你使用了默認(rèn)用戶 pi。運(yùn)行 createuser 命令以繼續(xù):

createuser pi -P --interactive

當(dāng)?shù)玫教崾緯r(shí),輸入一個(gè)密碼(并記住它),選擇 n   使它成為一個(gè)非超級(jí)用戶(LCTT 譯注:此處原文有誤),接下來兩個(gè)問題選擇 y(LCTT 譯注:分別允許創(chuàng)建數(shù)據(jù)庫和其它用戶)。

creating a postgres user

現(xiàn)在,使用 Postgres shell 連接到 Postgres 去創(chuàng)建一個(gè)測試數(shù)據(jù)庫: 

$ psql   create database test;

按下 Ctrl+D 兩次從 psql shell 和 postgres 用戶中退出,再次以 pi 用戶登入。你創(chuàng)建了一個(gè)名為 pi 的 Postgres 用戶后,你可以從這里無需登錄憑據(jù)即可訪問 Postgres shell:

$ psql test

你現(xiàn)在已經(jīng)連接到 test 數(shù)據(jù)庫。這個(gè)數(shù)據(jù)庫當(dāng)前是空的,不包含任何表。你可以在 psql shell 里創(chuàng)建一個(gè)簡單的表:

test=  create table people (name text, company text);

現(xiàn)在你可插入數(shù)據(jù)到表中:

test=  insert into people values (Ben Nuttall ,  Raspberry Pi Foundation  test=  insert into people values ( Rikki Endsley ,  Red Hat

然后嘗試進(jìn)行查詢:

test=  select * from people; name | company ---------------+------------------------- Ben Nuttall | Raspberry Pi Foundation Rikki Endsley | Red Hat (2 rows)

a postgres query

test=  select name from people where company =  Red Hat  name | company ---------------+--------- Rikki Endsley | Red Hat (1 row)

pgAdmin

如果希望使用一個(gè)圖形工具去訪問數(shù)據(jù)庫,你可以使用它。PgAdmin 是一個(gè)全功能的 PostgreSQL GUI,它允許你去創(chuàng)建和管理數(shù)據(jù)庫和用戶、創(chuàng)建和修改表、執(zhí)行查詢,和如同在電子表格一樣熟悉的視圖中瀏覽結(jié)果。psql 命令行工具可以很好地進(jìn)行簡單查詢,并且你會(huì)發(fā)現(xiàn)很多高級(jí)用戶一直在使用它,因?yàn)樗膱?zhí)行速度很快(并且因?yàn)樗麄儾恍枰柚?GUI),但是,一般用戶學(xué)習(xí)和操作數(shù)據(jù)庫,使用 pgAdmin 是一個(gè)更適合的方式。

關(guān)于 pgAdmin 可以做的其它事情:你可以用它在樹莓派上直接連接數(shù)據(jù)庫,或者用它在其它的電腦上遠(yuǎn)程連接到樹莓派上的數(shù)據(jù)庫。

如果你想去訪問樹莓派,你可以用 apt 去安裝它:

sudo apt install pgadmin3

它是和基于 Debian 的系統(tǒng)如 Ubuntu 是完全相同的;如果你在其它發(fā)行版上安裝,嘗試與你的系統(tǒng)相關(guān)的等價(jià)的命令。或者,如果你在 Windows 或 macOS 上,嘗試從 pgAdmin.org 上下載 pgAdmin。注意,在 apt 上的可用版本是 pgAdmin3,而 *** 的版本 pgAdmin4,在其網(wǎng)站上可以找到。

在同一臺(tái)樹莓派上使用 pgAdmin 連接到你的數(shù)據(jù)庫,從主菜單上簡單地打開 pgAdmin3,點(diǎn)擊 new connection 圖標(biāo),然后完成注冊(cè),這時(shí),你將需要一個(gè)名字(連接名,比如 test),改變用戶為“pi”,然后剩下的輸入框留空 (或者如它們?cè)静粍?dòng))。點(diǎn)擊 OK,然后你在左側(cè)的側(cè)面版中將發(fā)現(xiàn)一個(gè)新的連接。

connect your database with pgadmin

要從另外一臺(tái)電腦上使用 pgAdmin 連接到你的樹莓派數(shù)據(jù)庫上,你首先需要編輯 PostgreSQL 配置允許遠(yuǎn)程連接:

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(對(duì)于 IPv4)和將 ::1/128 改變成 ::/0(對(duì)于 IPv6)。然后保存并退出。

3、重啟 PostgreSQL 服務(wù):sudo service postgresql restart。

注意,如果你使用一個(gè)舊的 Raspbian 鏡像或其它發(fā)行版,版本號(hào)可能不一樣。

edit the postgresql configuration to allow remote connections

做完這些之后,在其它的電腦上打開 pgAdmin 并創(chuàng)建一個(gè)新的連接。這時(shí),需要提供一個(gè)連接名,輸入樹莓派的 IP 地址作為主機(jī)(這可以在任務(wù)欄的 WiFi 圖標(biāo)上懸停鼠標(biāo)找到,或者在一個(gè)終端中輸入 hostname -I 找到)。

a remote connection

不論你連接的是本地的還是遠(yuǎn)程的數(shù)據(jù)庫,點(diǎn)擊打開 Server Groups Servers test Schemas public Tables,右鍵單擊 people 表,然后選擇 View Data View top 100 Rows。你現(xiàn)在將看到你前面輸入的數(shù)據(jù)。

viewing test data

你現(xiàn)在可以創(chuàng)建和修改數(shù)據(jù)庫和表、管理用戶,和使用 GUI 去寫你自己的查詢了。你可能會(huì)發(fā)現(xiàn)這種可視化方法比命令行更易于管理。

Python

要從一個(gè) Python 腳本連接到你的數(shù)據(jù)庫,你將需要 Psycopg2 這個(gè) Python 包。你可以用 pip 來安裝它:

sudo pip3 install psycopg2

現(xiàn)在打開一個(gè) Python 編輯器寫一些代碼連接到你的數(shù)據(jù)庫: 

import psycopg2 conn = psycopg2.connect(dbname=test) cur = conn.cursor() cur.execute( select * from people) results = cur.fetchall() for result in results: print(result)

運(yùn)行這個(gè)代碼去看查詢結(jié)果。注意,如果你連接的是遠(yuǎn)程數(shù)據(jù)庫,在連接字符串中你將需要提供更多的憑據(jù),比如,增加主機(jī) IP、用戶名,和數(shù)據(jù)庫密碼:

conn = psycopg2.connect(host=192.168.86.31 user=pi password=raspberry dbname=test)

你甚至可以創(chuàng)建一個(gè)函數(shù)去運(yùn)行特定的查詢: 

def get_all_people(): query =   SELECT * FROM people   cur.execute(query) return cur.fetchall()

和一個(gè)包含參數(shù)的查詢: 

def get_people_by_company(company): query =   SELECT * FROM people WHERE company = %s   values = (company, ) cur.execute(query, values) return cur.fetchall()

或者甚至是一個(gè)增加記錄的函數(shù): 

def add_person(name, company): query =   INSERT INTO people VALUES (%s, %s)   values = (name, company) cur.execute(query, values)

注意,這里使用了一個(gè)注入字符串到查詢中的安全的方法,你不希望被 小鮑勃的桌子 害死!

關(guān)于“如何在一臺(tái)樹莓派上安裝 Postgres 數(shù)據(jù)庫”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-27發(fā)表,共計(jì)4158字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 廉江市| 长岛县| 瑞安市| 漠河县| 镇远县| 福海县| 平昌县| 得荣县| 霍城县| 永平县| 北宁市| 丹阳市| 盐池县| 吴堡县| 扎兰屯市| 大丰市| 沐川县| 新建县| 宁河县| 德化县| 水城县| 广南县| 日土县| 明星| 大荔县| 侯马市| 佛学| 盘锦市| 桓仁| 多伦县| 民丰县| 宜宾县| 射洪县| 巴林右旗| 西乌珠穆沁旗| 历史| 霍山县| 河津市| 获嘉县| 盐亭县| 巴彦县|