PostgreSQL安裝配置(Centos7)

1. 安裝PostgreSQL源

rpm -Uvh http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm

2. 執(zhí)行安裝命令

yum update
yum install postgresql94-server postgresql94-contrib

3. 驗(yàn)證是否安裝成功

執(zhí)行:

rpm -qa | grep postgres

結(jié)果:

postgresql94-9.4.10-1PGDG.rhel7.x86_64
postgresql94-server-9.4.10-1PGDG.rhel7.x86_64
postgresql94-libs-9.4.10-1PGDG.rhel7.x86_64
postgresql94-contrib-9.4.10-1PGDG.rhel7.x86_64

說明安裝成功

4. 初始化數(shù)據(jù)庫

先創(chuàng)建數(shù)據(jù)存放目錄:

mkdir -p /opt/pgsql/data

賦予postgres用戶該目錄的權(quán)限:

chown postgres /opt/pgsql/data

切換到postgres用戶:

su postgres

執(zhí)行初始化:

initdb -D /opt/pgsql/data

注:

-D 后面是數(shù)據(jù)庫文件存放的目錄,如果不指定則默認(rèn)在/var/lib/pgsql/9.4/data下

初始化的日志如下:

屬于此數(shù)據(jù)庫系統(tǒng)的文件宿主為用戶 "postgres".
此用戶也必須為服務(wù)器進(jìn)程的宿主.
數(shù)據(jù)庫簇將使用本地化語言 "zh_CN.UTF-8"進(jìn)行初始化.
默認(rèn)的數(shù)據(jù)庫編碼已經(jīng)相應(yīng)的設(shè)置為 "UTF8".
initdb: 無法為本地化語言環(huán)境"zh_CN.UTF-8"找到合適的文本搜索配置
缺省的文本搜索配置將會(huì)被設(shè)置到"simple"

禁止為數(shù)據(jù)頁生成校驗(yàn)和.

修復(fù)已存在目錄 /opt/pgsql/data 的權(quán)限 ... 成功
正在創(chuàng)建子目錄 ... 成功
選擇默認(rèn)最大聯(lián)接數(shù) (max_connections) ... 100
選擇默認(rèn)共享緩沖區(qū)大小 (shared_buffers) ... 128MB
選擇動(dòng)態(tài)共享內(nèi)存實(shí)現(xiàn) ......posix
創(chuàng)建配置文件 ... 成功
在 /opt/pgsql/data/base/1 中創(chuàng)建 template1 數(shù)據(jù)庫 ... 成功
初始化 pg_authid ...  成功
初始化dependencies ... 成功
創(chuàng)建系統(tǒng)視圖 ... 成功
正在加載系統(tǒng)對象描述 ...成功
創(chuàng)建(字符集)校對規(guī)則 ... 成功
創(chuàng)建字符集轉(zhuǎn)換 ... 成功
正在創(chuàng)建字典 ... 成功
對內(nèi)建對象設(shè)置權(quán)限 ... 成功
創(chuàng)建信息模式 ... 成功
正在裝載PL/pgSQL服務(wù)器端編程語言...成功
清理數(shù)據(jù)庫 template1 ... 成功
拷貝 template1 到 template0 ... 成功
拷貝 template1 到 template0 ... 成功
同步數(shù)據(jù)到磁盤...成功

成功. 您現(xiàn)在可以用下面的命令運(yùn)行數(shù)據(jù)庫服務(wù)器:

    /usr/pgsql-9.4/bin/postmaster -D /opt/pgsql/data/
或者
    /usr/pgsql-9.4/bin/pg_ctl -D /opt/pgsql/data/ -l logfile start

5. 啟動(dòng)服務(wù)

1.切換到postgres用戶

su postgres

這個(gè)步驟同樣必須以PostgreSQL用戶帳戶登錄來做。

2.啟動(dòng)服務(wù)

沒有-D選項(xiàng),服務(wù)器將使用環(huán)境變量PGDATA命名的目錄; 如果這個(gè)環(huán)境變量也沒有,將導(dǎo)致失敗。通常,最好在后臺(tái)啟動(dòng)postgres,使用下面的 Unix shell 語法:

pg_ctl -D /opt/pgsql/data/ -l logfile start

3.設(shè)置開機(jī)自動(dòng)啟動(dòng)

在Linux系統(tǒng)里,要么往/etc/rc.d/rc.local或 /etc/rc.local文件里加上下面幾行:

/usr/local/pgsql/bin/pg_ctl start -l logfile -D /usr/local/pgsql/data

6. 創(chuàng)建用戶

PostgreSQL使用角色的概念管理數(shù)據(jù)庫訪問權(quán)限。 根據(jù)角色自身的設(shè)置不同,一個(gè)角色可以看做是一個(gè)數(shù)據(jù)庫用戶,或者一組數(shù)據(jù)庫用戶。 角色可以擁有數(shù)據(jù)庫對象(比如表)以及可以把這些對象上的權(quán)限賦予其它角色, 以控制誰擁有訪問哪些對象的權(quán)限。另外,我們也可以把一個(gè)角色的成員 權(quán)限賦予其它角色,這樣就允許成員角色使用分配給另一個(gè)角色的權(quán)限。
角色的概念替換了"用戶"和"組"。在PostgreSQL 版本 8.1 之前,用戶和組是獨(dú)立類型的記錄,但現(xiàn)在它們只是角色。 任何角色都可以是一個(gè)用戶、一個(gè)組、或者兩者。

數(shù)據(jù)庫角色從概念上與操作系統(tǒng)用戶是完全無關(guān)的。在實(shí)際使用中把它們對應(yīng)起來可能比較方便, 但這不是必須的。數(shù)據(jù)庫角色在整個(gè)數(shù)據(jù)庫集群中是全局的(而不是每個(gè)庫不同)。 要?jiǎng)?chuàng)建一個(gè)角色,使用 SQL 命令CREATE ROLE執(zhí)行:

CREATE ROLE name;

name遵循 SQL 標(biāo)識(shí)的規(guī)則:要么完全沒有特殊字符, 要么用雙引號(hào)包圍(實(shí)際上你通常會(huì)給命令增加額外的選項(xiàng),比如LOGIN。 下面顯示更多細(xì)節(jié))。要?jiǎng)h除一個(gè)現(xiàn)有角色,使用類似的DROP ROLE命令:

DROP ROLE name;

為了方便,程序createuserdropuser 提供了對了這些 SQL 命令的封裝。我們可以在 shell 命令上直接調(diào)用它們:

直接在shell里輸入:

createuser lbd;

這樣就創(chuàng)建了lbd這個(gè)角色。

dropuser lbd;

這樣就創(chuàng)建了lbd這個(gè)角色。

要檢查現(xiàn)有角色的集合,可以檢查pg_roles系統(tǒng)表,比如:

SELECT rolname FROM pg_roles;

結(jié)果如下:

postgres=# SELECT rolname FROM pg_roles;
 rolname
----------
 postgres
 lbd
(2 行記錄)

psql的元命令\du
也可以用于列出現(xiàn)有角色。

結(jié)果如下:

postgres=# \du
                        角色列表
 角色名稱 |               屬性                | 成員屬于
---------+----------------------------------+----------
 lbd     |                                   | {}
 postgres| 超級(jí)用戶, 建立角色, 建立 DB, 復(fù)制     | {}
FullStackPlan

歡迎關(guān)注公眾號(hào): FullStackPlan 獲取更多干貨哦~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容