Mac 上安裝配置和簡單實用PostgreSQL

PostgreSQL簡介

PostgreSQL

PostgreSQL是以加州大學伯克利分校計算機系開發(fā)的 POSTGRES,現(xiàn)在已經(jīng)更名為PostgreSQL,版本 4.2為基礎(chǔ)的對象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS)。PostgreSQL支持大部分 SQL標準并且提供了許多其他現(xiàn)代特性:復雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、MVCC。同樣,PostgreSQL 可以用許多方法擴展,比如, 通過增加新的數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引。免費使用、修改、和分發(fā) PostgreSQL,不管是私用、商用、還是學術(shù)研究使用。

psql

是PostgreSQL數(shù)據(jù)庫的命令行交互工具。

pgAdmin

是PostgreSQL數(shù)據(jù)庫的圖形化管理工具。

PostgreSQL安裝與卸載

官網(wǎng)安裝

在官網(wǎng)上下載安裝包或者使用官網(wǎng)提供的Postgres.app,這里就不詳細介紹了,因為我們這里使用homebrew來安裝。

homebrew安裝

brew install postgresql

初始化:

initdb /usr/local/var/postgres

創(chuàng)建數(shù)據(jù)庫和賬戶

創(chuàng)建數(shù)據(jù)庫和賬戶

mac安裝PostgreSQL后不會創(chuàng)建用戶名數(shù)據(jù)庫,執(zhí)行命令:

createdb

然后登錄PostgreSQL控制臺:

psql

psql連接數(shù)據(jù)庫默認選用的是當前的系統(tǒng)用戶

使用\l命令列出所有的數(shù)據(jù)庫,看到已存在用戶同名數(shù)據(jù)庫、postgres數(shù)據(jù)庫,但是postgres數(shù)據(jù)庫的所有者是當前用戶,沒有postgres用戶。

然后我們來完成以下幾件事:

一、創(chuàng)建postgres用戶

CREATE USER postgres WITH PASSWORD 'XXXXXX';

二、刪除默認生成的postgres數(shù)據(jù)庫

DROP DATABASE postgres;

三、創(chuàng)建屬于postgres用戶的postgres數(shù)據(jù)庫

CREATE DATABASE postgres OWNER postgres;

四、將數(shù)據(jù)庫所有權(quán)限賦予postgres用戶

GRANT ALL PRIVILEGES ON DATABASE postgres to postgres;

五、給postgres用戶添加創(chuàng)建數(shù)據(jù)庫的屬性

ALTER ROLE postgres CREATEDB;

這樣就可以使用postgres作為數(shù)據(jù)庫的登錄用戶了,并可以使用該用戶管理數(shù)據(jù)庫

登陸控制臺指令
psql -U [user] -d [database] -h [host] -p [port]

-U指定用戶,-d指定數(shù)據(jù)庫,-h指定服務(wù)器,-p指定端口
完整的登錄命令,比如使用postgres用戶登錄

psql -U postgres -d postgres

之前我們直接使用psql登錄控制臺,實際上使用的是缺省數(shù)據(jù)

user:當前mac用戶
database:用戶同名數(shù)據(jù)庫
主機:localhost
端口號:5432,postgresql的默認端口是5432
常用控制臺指令
\password:設(shè)置當前登錄用戶的密碼
\h:查看SQL命令的解釋,比如\h select。
\?:查看psql命令列表。
\l:列出所有數(shù)據(jù)庫。
\c [database_name]:連接其他數(shù)據(jù)庫。
\d:列出當前數(shù)據(jù)庫的所有表格。
\d [table_name]:列出某一張表格的結(jié)構(gòu)。
\du:列出所有用戶。
\e:打開文本編輯器。
\conninfo:列出當前數(shù)據(jù)庫和連接的信息。
\password [user]: 修改用戶密碼
\q:退出
使用PostgreSQL

現(xiàn)在來簡單的學習一下使用PostgreSQL,以下命令都在postgres=# 環(huán)境下
修改用戶密碼
之前我們用命令CREATE USER postgres WITH PASSWORD 'XXXXXX';創(chuàng)建了postgres用戶,現(xiàn)在我們來修改該用戶的密碼:

ALTER USER postgres WITH PASSWORD 'XXXXXX'

出現(xiàn)ALTER ROLE, 代表修改角色成功

創(chuàng)建和刪除數(shù)據(jù)庫用戶

創(chuàng)建user1用戶:CREATE USER user1 WITH PASSWORD 'XXXX'

查看數(shù)據(jù)庫用戶列表:\du

刪除數(shù)據(jù)庫用戶:drop user user1;

創(chuàng)建和刪除數(shù)據(jù)庫

創(chuàng)建數(shù)據(jù)庫:create database testdb;

查看數(shù)據(jù)庫列表:\l

刪除數(shù)據(jù)庫:drop database db1;

創(chuàng)建和刪除數(shù)據(jù)表

選擇數(shù)據(jù)庫:\c DatabaseName,比如\c testdb

創(chuàng)建數(shù)據(jù)庫表:CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL);

刪除數(shù)據(jù)庫表: drop table company;

查看數(shù)據(jù)庫信息:\d

查詢數(shù)據(jù):select * from company

關(guān)于第三方連接本地數(shù)據(jù)庫的問題

如何設(shè)置PostgreSQL允許被遠程訪問

/usr/local/var/postgres/postgresql.conf
  1. 修改postgresql.conf
    編輯或添加下面一行,使PostgreSQL可以接受來自任意IP的連接請求。
listen_addresses = '*'
  1. 修改pg_hba.conf
    pg_hba.conf,位置與postgresql.conf相同,雖然上面配置允許任意地址連接PostgreSQL,但是這在pg中還不夠,我們還需在pg_hba.conf中配置服務(wù)端允許的認證方式。任意編輯器打開該文件,編輯或添加下面一行。
# TYPE  DATABASE  USER  CIDR-ADDRESS  METHOD
host  all  all 0.0.0.0/0 md5

默認pg只允許本機通過密碼認證登錄,修改為上面內(nèi)容后即可以對任意IP訪問進行密碼驗證。對照上面的注釋可以很容易搞明白每列的含義,具體的支持項可以查閱文末參考引用。

完成上兩項配置后執(zhí)行sudo service postgresql restart重啟PostgreSQL服務(wù)后,允許外網(wǎng)訪問的配置就算生效了。

參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容