摘要:安裝安裝客戶端安裝服務(wù)器交互式客戶端程序是,服務(wù)器程序是。安裝完后,多了一個用戶,但是這個用戶沒有設(shè)置密碼,現(xiàn)在為它設(shè)置密碼提示輸入新的密碼下面切換到用戶,然后創(chuàng)建數(shù)據(jù)庫簇。切回用戶,列出所有角色。重新創(chuàng)建角色隨后,即可以角色登錄了。
環(huán)境:openSUSE Leap 42.2
自從 Ubuntu 棄 Unity 轉(zhuǎn) Gnome,我也就棄 Ubuntu 而轉(zhuǎn) openSUSE 了。
Leap 的軟件版本是舊了一點(diǎn)(比如 Vim 還停留在 7.4),好處是穩(wěn)定、優(yōu)雅、省心。滾動發(fā)行版 Tumbleweed 目前還差那么一口氣,試用之后覺得不夠穩(wěn)定,并不適合日常使用。
openSUSE 的 KDE 桌面堪稱一絕,上班用 Windows、娛樂用 Mac、寫代碼用 Linux 的我,自認(rèn)為 openSUSE 的 KDE 是最好的桌面。
還在用 Ubuntu 的同學(xué),可以參考 阮一峰 寫的 PostgreSQL 新手入門。
安裝安裝客戶端:
$ sudo zypper in postgresql
安裝服務(wù)器:
$ sudo zypper in postgresql-server
交互式客戶端程序是 psql,服務(wù)器程序是 postgres。
安裝完后,Linux 多了一個用戶 postgres,但是這個用戶沒有設(shè)置密碼,現(xiàn)在為它設(shè)置密碼:
$ sudo passwd postgres <提示輸入新的密碼>
下面切換到用戶 postgres,然后創(chuàng)建數(shù)據(jù)庫簇(Cluster)。
(adam@linux) $ su postgres <輸入剛剛設(shè)置的密碼> (postgres@linux) $ initdb -D /var/lib/pgsql/data
數(shù)據(jù)庫簇是放置數(shù)據(jù)庫的位置,/var/lib/pgsql/data 是推薦的位置之一。
啟動服務(wù)必須先切換至 postgres 用戶:
(adam@linux) $ su postgres
通過 pg_ctl 工具啟動服務(wù):
(postgres@linux) $ pg_ctl start -D /var/lib/pgsql/data 正在啟動服務(wù)器進(jìn)程 2017-06-25 10:11:14 CST 日志: 日志輸出重定向到日志收集進(jìn)程 2017-06-25 10:11:14 CST 提示: 后續(xù)的日志輸出將出現(xiàn)在目錄 "pg_log" 中
pg_ctl 是一個用于初始化、啟動、停止或控制 PostgreSQL 服務(wù)器的工具。
看一下進(jìn)程狀態(tài):
$ ps aux | grep postgres postgres 5765 0.0 0.2 213160 20404 pts/0 S 10:11 0:00 /usr/lib/postgresql94/bin/postgres -D /var/lib/pgsql/data postgres 5768 0.0 0.0 68308 3112 ? Ss 10:11 0:00 postgres: logger process postgres 5770 0.0 0.0 213160 3628 ? Ss 10:11 0:00 postgres: checkpointer process postgres 5771 0.0 0.0 213160 5684 ? Ss 10:11 0:00 postgres: writer process postgres 5772 0.0 0.0 213160 3628 ? Ss 10:11 0:00 postgres: wal writer process postgres 5773 0.0 0.0 213560 6800 ? Ss 10:11 0:00 postgres: autovacuum launcher process postgres 5774 0.0 0.0 68304 4216 ? Ss 10:11 0:00 postgres: stats collector process
通過 pg_ctl 查看狀態(tài):
(postgres@linux) $ pg_ctl status -D /var/lib/pgsql/data pg_ctl: 正在運(yùn)行服務(wù)器進(jìn)程(PID: 5765) /usr/lib/postgresql94/bin/postgres "-D" "/var/lib/pgsql/data"
注意非 postgres 用戶下仍是沒有權(quán)限查看狀態(tài)的:
(adam@linux) $ pg_ctl status -D /var/lib/pgsql/data pg_ctl: 無法訪問目錄 "/var/lib/pgsql/data": 權(quán)限不夠
為了避免每次都用 -D 選項(xiàng)指定數(shù)據(jù)庫簇的目錄,現(xiàn)添加環(huán)境變量 PGDATA。
打開 .bashrc,添加如下兩行:
# PostgreSQL database cluster directory. export PGDATA=/var/lib/pgsql/data
下次再用 pg_ctl 時就不需指定 -D 了。
(postgres@linux) $ pg_ctl status pg_ctl: 正在運(yùn)行服務(wù)器進(jìn)程(PID: 5765) /usr/lib/postgresql94/bin/postgres "-D" "/var/lib/pgsql/data"角色(Role)
回到 Linux 普通用戶(比如 adam),用客戶端程序 psql 嘗試交互:
(adam@linux) $ psql template1 psql: 致命錯誤: 角色 "adam" 不存在
提示說角色不存在。
角色是 PostgreSQL 管理數(shù)據(jù)庫訪問權(quán)限的一個概念。
切回 postgres 用戶,列出所有角色。
(postgres@linux) $ psql template1 psql (9.4.9) 輸入 "help" 來獲取幫助信息. template1=# SELECT rolname FROM pg_roles; rolname ---------- postgres (1 行記錄)
可見目前只有一個角色 postgres。
新建一個角色 adam:
template1=# CREATE ROLE adam; CREATE ROLE template1=# SELECT rolname FROM pg_roles; rolname ---------- postgres adam (2 行記錄)
再次嘗試以用戶 adam 連接:
(adam@linux) $ psql template1 psql: 致命錯誤: 不允許角色"adam" 進(jìn)行登錄
看來剛剛創(chuàng)建的角色 adam 沒有 LOGIN 到數(shù)據(jù)庫的權(quán)限。
重新創(chuàng)建角色:
template1=# DROP ROLE adam; DROP ROLE template1=# CREATE ROLE adam WITH LOGIN CREATEDB PASSWORD "654321";
隨后,即可以角色 adam 登錄了。
(adam@linux) $ psql -l 資料庫列表 名稱 | 擁有者 | 字元編碼 | 校對規(guī)則 | Ctype | 存取權(quán)限 -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | template0 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 行記錄)
psql 通過 -U 指定角色,前面都沒有指定,缺省角色即 Linux 的用戶名,所以其實(shí)可以指定角色:
(adam@linux) $ psql -l -Uadam
注意,數(shù)據(jù)庫角色名不必和 Linux 用戶名相同。
通過 -U 選項(xiàng),可以以任意角色登錄數(shù)據(jù)庫:
(adam@linux) $ psql -l -Upostgres創(chuàng)建數(shù)據(jù)庫
(adam@linux) $ createdb mydb (adam@linux) $ psql -l 名稱 | 擁有者 | 字元編碼 | 校對規(guī)則 | Ctype | 存取權(quán)限 -----------+----------+----------+-------------+-------------+----------------------- mydb | adam | UTF8 | zh_CN.UTF-8 | zh_CN.UTF-8 | ...
刪除數(shù)據(jù)庫:
(adam@linux) $ dropdb mydb
使用數(shù)據(jù)庫:
(adam@linux) $ psql mydb
當(dāng)然,psql 只是使用數(shù)據(jù)的方式之一。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/38992.html
摘要:安裝安裝客戶端安裝服務(wù)器交互式客戶端程序是,服務(wù)器程序是。安裝完后,多了一個用戶,但是這個用戶沒有設(shè)置密碼,現(xiàn)在為它設(shè)置密碼提示輸入新的密碼下面切換到用戶,然后創(chuàng)建數(shù)據(jù)庫簇。切回用戶,列出所有角色。重新創(chuàng)建角色隨后,即可以角色登錄了。 環(huán)境:openSUSE Leap 42.2 自從 Ubuntu 棄 Unity 轉(zhuǎn) Gnome,我也就棄 Ubuntu 而轉(zhuǎn) openSUSE 了。Le...
摘要:本文介紹一下在下如何安裝,以及對做一些簡單的配置。安裝完畢后會自動退出。通過這個步驟,來完成對配置文件的重新載入。節(jié)點(diǎn)中表示根目錄存放的位置,表示要監(jiān)聽的端口,表示主機(jī)名。 本文介紹一下在 openSUSE 下如何安裝 nginx ,以及對 nginx 做一些簡單的配置。 安裝環(huán)境:openSUSE Leap 42.2 安裝步驟 1. 添加軟件源 安裝 nginx 有幾種方式,包括源...
閱讀 1538·2021-11-04 16:10
閱讀 2774·2021-09-30 09:48
閱讀 2839·2019-08-29 11:31
閱讀 1578·2019-08-28 18:22
閱讀 3225·2019-08-26 13:44
閱讀 1319·2019-08-26 13:42
閱讀 2845·2019-08-26 10:20
閱讀 754·2019-08-23 17:00