1. 程式人生 > >Ubuntu PostgreSQL安裝和配置

Ubuntu PostgreSQL安裝和配置

Ubuntu PostgreSQL安裝和配置
一、安裝
1、安裝
使用如下命令,會自動安裝最新版,這裡為9.5
sudo apt-get install postgresql
安裝完成後,預設會:
(1)建立名為"postgres"的Linux使用者
(2)建立名為"postgres"、不帶密碼的預設資料庫賬號作為資料庫管理員
(3)建立名為"postgres"的表
安裝完成後的一些預設資訊如下:
config /etc/postgresql/9.5/main
data /var/lib/postgresql/9.5/main
locale en_US.UTF-8
socket /var/run/postgresql
port 5432
2、psql命令
安裝完後會有PostgreSQL的客戶端psql,通過 sudo -u postgres psql 進入,提示符變成: postgres=#  
在這裡可用執行SQL語句和psql的基本命令。可用的基本命令如下:
複製程式碼
複製程式碼
\password:設定密碼
\q:退出
\h:檢視SQL命令的解釋,比如\h select。
\?:檢視psql命令列表。
\l:列出所有資料庫。
\c [database_name]:連線其他資料庫。
\d:列出當前資料庫的所有表格。
\d [table_name]:列出某一張表格的結構。
\du:列出所有使用者。
\e:開啟文字編輯器。
\conninfo:列出當前資料庫和連線的資訊。
複製程式碼
複製程式碼
 
二、修改資料庫預設賬號的密碼
1、登入
使用psql命令登入資料庫的命令為:
psql -U dbuser -d exampledb -h 127.0.0.1 -p 5432
上面命令的引數含義如下:-U指定使用者,-d指定資料庫,-h指定伺服器,-p指定埠。
輸入上面命令以後,系統會提示輸入dbuser使用者的密碼。
psql命令存在簡寫形式:
如果當前Linux系統使用者,同時也是PostgreSQL使用者,則可以省略使用者名稱(-U引數的部分)
如果PostgreSQL內部還存在與當前系統使用者同名的資料庫,則資料庫名也可以省略。
2、修改預設管理員賬號的密碼
以Linux使用者"postgres"的身份(此時只有該使用者有psql命令)執行psql客戶端,進入該客戶端的提示符介面(這裡系統使用者名稱、資料庫使用者名稱、資料庫名都為postgres,故可採用簡寫形式)
sudo -u postgres psql

postgres=# alter user postgres with password '123456';
這樣,管理員"postgres"的密碼就為"123456"。
退出psql客戶端命令:\q
若要刪除該管理員的密碼,則可用命令:sudo -u postgres psql -d postgres
 
三、修改Linux使用者的密碼
這個其實與安裝postgresql關係不大。
以Linux使用者"postgres"為例,對其執行passwd命令:
[email protected]
:/etc/postgresql/9.5/main$ sudo -u postgres passwd //也可以 sudo passwd postgres Changing password for postgres. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully 四、配置資料庫以允許遠端連線訪問 安裝完成後,預設只能本地才能連線資料庫,其他機子訪問不了,需要進行配置。(以下示例開放了最大連線許可權,實際配置根據你的需要而定) 1、修改監聽地址 sudo gedit /etc/postgresql/9.5/main/postgresql.conf 將 #listen_addresses = 'localhost' 的註釋去掉並改為 listen_addresses = '*' 2、修改可訪問使用者的IP段 sudo gedit /etc/postgresql/9.5/main/pg_hba.conf 在檔案末尾新增: host all all 0.0.0.0 0.0.0.0 md5 ,表示允許任何IP連線 3、重啟資料庫 sudo /etc/init.d/postgresql restart 其他:管理使用者、建立資料庫等 五、新增新使用者和新資料庫 法一:使用PostgreSQL客戶端psql 執行系統使用者"postgres"的psql命令,進入客戶端: sudo -u postgres psql 建立使用者"xiaozhang"並設定密碼: postgres=# create user xiaozhang with password '123456'; 建立資料庫exampledb,所有者為xiaozhang: postgres=# create database exampledb owner xiaozhang; 將exampledb資料庫的所有許可權賦予xiaozhang,否則xiaozhang只能登入psql,沒有任何資料庫操作許可權: grant all privileges on database exampledb to xiaozhang; 法二:使用shell命令列 安裝PostgreSQL後提供了createuser和createdb命令列程式。 首先建立資料庫使用者"xiaozhang1",並指定為超級使用者: sudo -u postgres createuser --superuser xiaozhang1; 接著登入psql控制檯設定其密碼後退出: 複製程式碼 複製程式碼
[email protected]
:~$ sudo -u postgres psql psql (9.5.3) Type "help" for help. postgres=# \password xiaozhang1; Enter new password: Enter it again: postgres=# \q 複製程式碼 複製程式碼 然後在shell命令列下建立資料庫並指定所有者: sudo -u postgres createdb -O xiaozhang1 exampledb1; 法三:使用paadmin3以管理員連線資料庫後建立 經過法一、法二操作後,執行 postgres=# \du 得到使用者列表如下: 執行 postgres=# \l 得到資料庫列表如下: 若要刪除使用者(如刪除xiaozhang)可先 postgres=# drop database example; 再 postgres=# drop user xiaozhang; 。 將某使用者改為超級管理員: alter user xiaozhang with superuser; 六、基本資料庫操作命令 複製程式碼 複製程式碼 # 建立新表 CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE); # 插入資料 INSERT INTO user_tbl(name, signup_date) VALUES('張三', '2013-12-22'); # 選擇記錄 SELECT * FROM user_tbl; # 更新資料 UPDATE user_tbl set name = '李四' WHERE name = '張三'; # 刪除記錄 DELETE FROM user_tbl WHERE name = '李四' ; # 新增欄位 ALTER TABLE user_tbl ADD email VARCHAR(40); # 更新結構 ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL; # 更名欄位 ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup; # 刪除欄位 ALTER TABLE user_tbl DROP COLUMN email; # 表格更名 ALTER TABLE user_tbl RENAME TO backup_tbl; # 刪除表格 DROP TABLE IF EXISTS backup_tbl; 複製程式碼 複製程式碼 postgis相關: 安裝postgis擴充套件: create extension postgis 使用示例: 1 CREATE TABLE cities ( id int4, name varchar(50) ); 2 select AddGeometryColumn('cities','pt',-1,'GEOMETRY',2); 3 SELECT * from cities; 4 INSERT INTO cities (id, pt, name) VALUES (1,ST_GeomFromText('POINT(-0.1257 51.508)',4326),'北京'); 5 INSERT INTO cities (id, pt, name) VALUES (2,ST_GeomFromText('POINT(-81.233 42.983)',4326),'天津'); 6 INSERT INTO cities (id, pt, name) VALUES (3,ST_GeomFromText('POINT(27.91162491 -33.01529)',4326),'河北'); 七、參考資料 [一~四]:http://blog.sina.com.cn/s/blog_6af33caa0100ypck.html [五~末]:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html