用慣了MySQL后,想嘗試使用下PostgreSQL,據(jù)說(shuō)這玩意兒也很強(qiáng)大,我在網(wǎng)上搜索了下相關(guān)中文書(shū)籍,可惜相關(guān)書(shū)籍遠(yuǎn)遠(yuǎn)沒(méi)有MySQL那么多,不過(guò)我在官方找到了由志愿者翻譯的文檔(參考9.1文檔翻譯項(xiàng)目),說(shuō)實(shí)話(huà)我英文文檔閱讀能力還是比較糾結(jié)的,所以有中文文檔當(dāng)然優(yōu)先中文了。
在Debian下可以通過(guò)apt-get命令直接安裝:
復(fù)制代碼 代碼如下:
sudo apt-get install postgresql postgresql-client postgresql-server-dev-all
安裝完成后,PostgreSQL默認(rèn)就創(chuàng)建了名為postgres用戶(hù),這個(gè)和MySQL的root以及SQL Server的sa賬戶(hù)一樣,是超級(jí)管理員賬戶(hù),與MySQL不一樣的是,其還創(chuàng)建了postgres的Unix系統(tǒng)賬戶(hù),和SQL Server的master數(shù)據(jù)庫(kù)一樣,PostgreSQL的默認(rèn)數(shù)據(jù)庫(kù)是template1,你可以用命令行管理工具psql來(lái)管理它,當(dāng)然前提是要切換到postgres的系統(tǒng)賬戶(hù):
復(fù)制代碼 代碼如下:
# su - postgres
$ psql
或者你可以通過(guò)sudo來(lái)一步到位的以postgres身份運(yùn)行psql,省得切換來(lái)切換去:
復(fù)制代碼 代碼如下:
sudo su postgres -c psql template1
完成上述命令后你就應(yīng)該可以看到操作數(shù)據(jù)庫(kù)的命令界面了,注意\q是退出命令,每句SQL語(yǔ)句以英文分號(hào)結(jié)束。如果要連接指定的數(shù)據(jù)庫(kù)請(qǐng)使用形如\c databasename的命令。
好,讓我們輸入\q先退出這個(gè)命令界面,接下來(lái)我們需要?jiǎng)?chuàng)建一個(gè)普通賬戶(hù),因?yàn)榻ㄗh不直接用超級(jí)管理員postgres賬戶(hù)來(lái)操作我們自己的數(shù)據(jù)庫(kù)。
首先創(chuàng)建名為mypguser的系統(tǒng)賬戶(hù)。
復(fù)制代碼 代碼如下:
sudo adduser mypguser
其次使用postgres連接template1并進(jìn)入psql命令界面:
復(fù)制代碼 代碼如下:
sudo su postgres -c psql template1
創(chuàng)建新的數(shù)據(jù)庫(kù)用戶(hù)、新數(shù)據(jù)庫(kù),并賦予新用戶(hù)新數(shù)據(jù)庫(kù)的全部權(quán)限:
復(fù)制代碼 代碼如下:
postgres=# CREATE USER mypguser WITH PASSWORD 'mypguserpass';
postgres=# CREATE DATABASE mypgdatabase;
postgres=# GRANT ALL PRIVILEGES ON DATABASE mypgdatabase to mypguser;
當(dāng)然上述的操作可以分別以shell命令createuser mypguser以及createdb mypgdatabase來(lái)實(shí)現(xiàn):
復(fù)制代碼 代碼如下:
# createuser mypguser #from regular shell
# su - mypguser
$ psql postgres
postgres=# CREATE DATABASE mypgdatabase;
完成這些后讓我們使用\q命令退出psql控制臺(tái)。
復(fù)制代碼 代碼如下:
postgres=# \q
下面我們就可以用指定賬戶(hù)管理我們的數(shù)據(jù)庫(kù)了:
復(fù)制代碼 代碼如下:
sudo su mypguser -c 'psql -d mypgdatabase'
等等,我們還有最重要的一步就是重置我們的postgres賬戶(hù)密碼,通過(guò)下面的命令:
復(fù)制代碼 代碼如下:
sudo su postgres -c psql template1
template1=# ALTER USER postgres WITH PASSWORD 'yourpassword'
template1=# \q
不要忘了還有系統(tǒng)賬戶(hù)的密碼:
復(fù)制代碼 代碼如下:
sudo passwd -d postgres
好了,到這里簡(jiǎn)單的安裝及創(chuàng)建賬戶(hù)已經(jīng)講解完畢了,介紹一下可能的錯(cuò)誤:
如果出現(xiàn)下面的錯(cuò)誤:
復(fù)制代碼 代碼如下:
psql: FATAL: Ident authentication failed for user "mypguser"
請(qǐng)編輯你的pg_hba.conf,這個(gè)文件一般位于/etc/postgresql/X.Y/main/pg_hba.conf,X.Y是你的PostgreSQL的版本號(hào),將下面行的peer改為trust:
復(fù)制代碼 代碼如下:
local all all trust # replace ident or peer with trust
如果出現(xiàn)下面的錯(cuò)誤:
復(fù)制代碼 代碼如下:
psql: FATAL: Peer authentication failed for user "mypguser"
請(qǐng)仍然修改pg_hba.conf文件,該下面行的peer為md5:
復(fù)制代碼 代碼如下:
local all all md5 # replace peer with md5
完成上面的修改后請(qǐng)重新加載postgresql:
復(fù)制代碼 代碼如下:
/etc/init.d/postgresql reload
您可能感興趣的文章:- 詳解CentOS7下PostgreSQL 11的安裝和配置教程
- Ubuntu PostgreSQL安裝和配置的介紹
- Windows上PostgreSQL安裝配置教程
- PostgreSQL安裝、配置及簡(jiǎn)單使用方法
- CentOS7 PostgreSQL安裝、配置、使用詳解
- postgresql安裝及配置超詳細(xì)教程