https://www.cnblogs.com/Siegel/p/6917213.html
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
查看數據庫的oid
SELECT oid,* from pg_database
三、修改Linux用戶的密碼
這個其實與安裝postgresql關系不大。
以Linux用戶"postgres"為例,對其運行passwd命令:
zsm@ubuntu:/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控制台設置其密碼后退出:
zsm@ubuntu:~$ 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; 。
六、基本數據庫操作命令
# 創建新表 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;