注意事項(xiàng):由于wordpress會(huì)自動(dòng)將半角單引號(hào)轉(zhuǎn)換為全角單引號(hào),引用代碼時(shí)需要手動(dòng)修改為單引號(hào)
第一步:在Ubuntu下安裝Postgresql
[代碼內(nèi)容]
root@ubuntuserver:~# sudo apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4
[代碼說明]
安裝服務(wù)端和命令行客戶端psql。
[功能說明]
/usr/lib/postgresql/8.4/ 存放postgresql相關(guān)的二進(jìn)制文件
/usr/lib/postgresql/8.4/bin/ 可執(zhí)行文件
/usr/lib/postgresql/8.4/lib/ 共享庫(kù)文件
/etc/postgres/8.4/main/ 存放postgresql配置文文件
/var/lib/postgresql/ postgres用戶的主文件夾
第二步:修改PostgreSQL數(shù)據(jù)庫(kù)的默認(rèn)用戶postgres的密碼(注意不是linux系統(tǒng)帳號(hào))
[代碼內(nèi)容]
root@ubuntuserver:~# sudo -u postgres psql
postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’;
postgres=# \q
[代碼說明]
‘#’和’#’之前的字符是系統(tǒng)提示符,’postgres=#’是psql客戶端的提示符,紅色字符為輸入命令(本文其它部分亦如此);
第一行:運(yùn)行psql,psql是一個(gè)標(biāo)準(zhǔn)的postgressql客戶端,也可以使用”sudo su postgres -c psql”,效果是一樣的;
第二行:修改postgres的密碼為postgres,不要忘記添加分號(hào)(回車后分號(hào)之前的sql語句才會(huì)立即執(zhí)行)
第三行:退出psql客戶端
[功能說明]
PostgreSQL數(shù)據(jù)默認(rèn)會(huì)創(chuàng)建一個(gè)postgres的數(shù)據(jù)庫(kù)用戶作為數(shù)據(jù)庫(kù)的管理員,密碼是隨機(jī)的,我人需要修改為指定的密碼,這里設(shè)定為’postgres’。
第三步:修改linux系統(tǒng)的postgres用戶的密碼(密碼與數(shù)據(jù)庫(kù)用戶postgres的密碼相同)
[代碼內(nèi)容]
root@ubuntuserver:~# sudo passwd -d postgres
root@ubuntuserver:~# sudo -u postgres passwd
[代碼說明]
第一行:刪除密碼
第二行:創(chuàng)建密碼
[功能說明]
PostgreSQL數(shù)據(jù)默認(rèn)會(huì)創(chuàng)建一個(gè)linux用戶postgres,通過上面的代碼修改密碼為’postgres’(這取決于第二步中的密碼,只要與其相同即可)。
現(xiàn)在,我們就可以在數(shù)據(jù)庫(kù)服務(wù)器上用 postgres帳號(hào)通過psql或者pgAdmin等等客戶端操作數(shù)據(jù)庫(kù)了(暫時(shí)還不能遠(yuǎn)程訪問)。
第四步:修改PostgresSQL數(shù)據(jù)庫(kù)配置實(shí)現(xiàn)遠(yuǎn)程訪問
[代碼內(nèi)容]
root@ubuntuserver:~# sudo vi /etc/postgresql/8.4/main/postgresql.conf
—>改變行:#listen_addresses = ‘localhost’
—>修改為:listen_addresses = ‘*’
—>改變行:#password_encryption = on
—>修改為:password_encryption = on
root@ubuntuserver:~# sudo vi /etc/postgresql/8.4/main/pg_hba.conf
—>文件末添加行:# to allow your client visiting postgresql server
—>文件末添加行:host all all 0.0.0.0 0.0.0.0 md5
root@ubuntuserver:~# sudo /etc/init.d/postgresql-8.4 restart
[代碼說明]
第一行:修改postgresql.conf的目的是修改連接權(quán)限;
第二行:修改pg_hba.conf的目的是設(shè)置誰才可以操作數(shù)據(jù)服務(wù)器;
第三行:重啟postgresql數(shù)據(jù)庫(kù)的服務(wù)程序,以使上面的配置生效。
詳細(xì)解釋一下”host all all 0.0.0.0 0.0.0.0 md5“:
host表示允許的類型是主機(jī);
第一個(gè)all是允許的數(shù)據(jù)庫(kù)名字;
第二個(gè)all是允許的用戶;
第一個(gè)0.0.0.0是允許訪問的ip address;
第二個(gè)0.0.0.0是允許訪問的subnet mask;
最后的md5表示密碼的加密方式,如果將md5改成trust則可以讓指定范圍的主機(jī)數(shù)據(jù)庫(kù)的時(shí)候不需要提供密碼。
關(guān)于ip address和subnet mask,你也可以修改為你的機(jī)器IP地址(如10.13.19.53)和子網(wǎng)掩碼(如 255.255.255.255),這樣就只有你自己的主機(jī)可以遠(yuǎn)程訪問數(shù)據(jù)庫(kù)了。 如果要使用一個(gè)IP地址范圍,只需要把子網(wǎng)掩碼設(shè)置成合適的值,如果子網(wǎng)掩碼設(shè)置成0.0.0.0,則所有主機(jī)均可以訪問數(shù)據(jù)庫(kù)(IP可以任意設(shè)定),如 果將md5改成trust則可以讓指定范圍的主機(jī)訪問指定的數(shù)據(jù)庫(kù)的時(shí)候不需要提供密碼。
[功能說明]
實(shí)現(xiàn)遠(yuǎn)程訪問
第五步:創(chuàng)建用戶和數(shù)據(jù)庫(kù)
[代碼內(nèi)容]
root@ubuntuserver:~# psql -U postgres -h 127.0.0.1
postgres=# create user “IamJiwan” with password ‘IamJiwan’ nocreatedb;
postgres=# create database “mydatabase” with owner=”IamJiwan”;
[代碼說明]
第一行:運(yùn)行psql客戶端,并指定用戶為postgres主機(jī)為127.0.0.1,執(zhí)行此行后需要輸入密碼’postgres’,如不指定則默認(rèn)用戶為linux系統(tǒng)當(dāng)前登錄用戶,默認(rèn)數(shù)據(jù)庫(kù)服務(wù)器為本機(jī);
第二行:添加數(shù)據(jù)庫(kù)用戶“IamJiwan“;
第三行:添加數(shù)據(jù)庫(kù)“mydatabase”并設(shè)定所有者為”IamJiwan”;
用戶名和數(shù)據(jù)庫(kù)名稱加上引號(hào)后才區(qū)分大小寫,否則會(huì)自動(dòng)轉(zhuǎn)換成小寫;
雙引號(hào)作用:創(chuàng)建對(duì)象的時(shí)候,對(duì)象名、字段名加雙引號(hào),則表示嚴(yán)格區(qū)分大小寫,否則都默認(rèn)小寫;
單引號(hào)作用:標(biāo)識(shí)字符與數(shù)字的區(qū)別,并不區(qū)分大小寫。
[功能說明]
創(chuàng)建用戶和數(shù)據(jù)庫(kù)
[備注內(nèi)容]
postgres還提供了命令行創(chuàng)建用戶和數(shù)據(jù)庫(kù)的方法:
root@ubuntuserver:~# sudo -u postgres createuser -D -P mynewuser
root@ubuntuserver:~# sudo -u postgres createdb -O mynewuser mydatabase
第一行:-D該用戶沒有創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)利,-P提示輸入密碼,后面的選項(xiàng)都可以省略,命令執(zhí)行的時(shí)候會(huì)提示用戶選擇yes或者no
第二行:-O設(shè)定所有者為mynewuser
第六步:如何安裝和使用pgAdmin3客戶端操作postgresql數(shù)據(jù)庫(kù)
[代碼內(nèi)容]
root@ubuntuserver:~# sudo apt-get install pgadmin3
[功能說明]
安裝圖形客戶端pgAdmin3