0. 背景
開始學習 PostgreSQL ,它是相對于 mySQL 的另一種關系型資料庫的選擇。
1. 介紹
PostgreSQL是一個功能非常強大的、源代碼開放的客戶/伺服器關系型資料庫管理系統(RDBMS)。
PostgreSQL 發音是
post-gress-Q-L
,它也經常被簡略念為 "postgres"。
PostgreSQL 的口号是 "世界上最先進的開源的對象關系型資料庫"。
PostgreSQL主要優勢:
- (1) PostgreSQL完全免費,而且是BSD協定,這意味着 PostgreSQL 資料庫不會被其它公司控制。而MySQL資料庫雖然是開源的,現在基本上被oracle公司控制。
- (2) 與PostgreSQl配合的開源軟體很多,有很多分布式叢集軟體,如pgpool、pgcluster、slony、plploxy等等,很容易做讀寫分離、負載均衡、資料水準拆分等方案,而這在MySQL下則比較困難。
- (3) PostgreSQL在很多方面都比MySQL強,如複雜SQL的執行、存儲過程、觸發器、索引。
- (4) 同時PostgreSQL是多程序的,而MySQL是線程的,雖然并發不高時,MySQL處理速度快,但當并發高的時候,MySQL無法充分利用CPU的能力。
先了解PostgreSQL的系統架構。
架構基礎
PostgreSQL使用一種用戶端/伺服器(C/S) 的模型。一次會話由下列組成:
- 服務端:一個伺服器程序,它管理資料庫檔案、接受來自用戶端應用與資料庫的聯接并且代表用戶端在資料庫上執行操作。
- 用戶端:那些需要執行資料庫操作的用戶端(程式)應用。 它可以是一個圖形界面的應用,或者是一個特制的資料庫管理工具。
這些用戶端和伺服器可以在不同的主機上。 這時它們通過 TCP/IP 網絡聯接通訊。
PostgreSQL 伺服器可以處理多個并發請求, 它為每個連接配接啟動(“forks”)一個新的程序。主伺服器程序總是在運作并等待着用戶端聯接, 而用戶端和相關聯的伺服器程序則是起起停停。
2. 安裝
我的是 CentOS 7 系統,采用二進制包的方式安裝。
安裝yum源
使用 yum 安裝需要先獲得 postgresql 的倉庫源。
yum install [https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm](https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm)
複制
執行安裝資料庫
開始使用 yum 安裝
yum install postgresql12
複制
驗證是否安裝成功
rpm -aq| grep postgres
複制
支援安裝完成了,我們進行一些設定後啟動它。
初始化資料庫
一定要先初始化資料庫,否則啟動的時候會報錯誤。
postgresql-setup initdb
複制
啟動服務并設定為開機啟動
systemctl enable postgresql.service
systemctl start postgresql.service
複制
3. 使用 shell 方式的用戶端接入
登入到控制台
在“不為postgres建立一個root使用者的情況下,想登入 postgresql "
你正在使用的目前linuxx使用者可能是root使用者,我們要先以 postgres 賬戶的身份 登入,然後再執行 psql 指令進入控制台。
也就是說登入postgres需要:一個linux賬戶名和一個postgres賬戶名同名,才可登入。
我們分兩步:
(1)先登入到postgres使用者:
$ su - postgres
複制
備注:Linux su指令用于變更為其他使用者的身份
(2)再使用psql進入到控制台:
$ -bash-4.2$ psql
複制
help看看
登入後輸入 help 看看
-bash-4.2$ help
複制
可能顯示:
psql (9.2.24)
Type "help" for help.
postgres=# help
You are using psql, the command-line interface to PostgreSQL.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
複制
4.資料庫操作
基本的資料庫操作,就是使用一般的SQL語言。
使用 Go語言 連接配接PostgreSQL 可以使用 gORM 庫來做,參考我的另一篇文章 《Go 使用 Gorm 操作 MySQL 資料庫》。
5. 參考
官方站
https://www.postgresql.org/
中文站
http://www.postgres.cn/
中文手冊
http://www.postgres.cn/docs/11/index.html
中文文檔
http://www.postgres.cn/v2/document
https://www.cnblogs.com/geekmao/p/8541817.html
su 指令說明
https://www.runoob.com/linux/linux-comm-su.html
https://www.cnblogs.com/deykenlee/p/7565688.html
https://www.jianshu.com/p/b4a759c2208f
END