系統版本
CentOS6.8
安裝官方yum源
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm
#查看postgres版本
yum list postgres*
安裝軟件
yum install postgresql96-server postgresql96-devel
初始化數據庫
service postgresql-9.6 initdb
這里使用默認初始化位置:/var/lib/pgsql/9.6/data/
啟動數據庫
chkconfig postgresql-9.6 on #設置開機自啟動,可選
service postgresql-9.6 start
登錄數據庫
su postgres
psql
創建數據庫
CREATE DATABASE villains;
CREATE DATABASE villains ENCODING 'UTF-8' #指定數據庫編碼,默認為utf-8
創建用戶
CREATE USER batman WITH PASSWORD 'Extremly-Secret-Password';
ALTER user postgres with password 'foobar'; #修改密碼
給用戶賦予權限
ALTER DATABASE villains owner to batman; #改變數據庫所有者
GRANT ALL PRIVILEGES ON DATABASE villains to batman;
GRANT SELECT ON DATABASE villains to alfred; #或者僅賦予部分權限
可選權限如下:
SELECT
INSERT
UPDATE
DELETE
RULE
REFERENCES
TRIGGER
CREATE
TEMPORARY
EXECUTE
USAGE
可以在創建數據庫的時候使用一個命令給予用戶(create database, create user and grant all privileges)
CREATE DATABASE villains OWNER batman;
查看用戶 使用數據庫
# \du 查看用戶
# \c villains 進入數據庫
# \l 查看當前所有數據庫
創建表
CREATE TABLE super_villains (id serial PRIMARY KEY, name character varying(100), super_power character varying(100), weakness character varying(100));
CREATE TABLE equipment (id serial PRIMARY KEY, name character varying(100), status character varying(100), special_move character varying(100));
查看表
# \d 查看當前數據庫所有表
# \d+ equipment; 查看具體表,以及字段
# SELECT * FROM information_schema.columns WHERE table_name = 'equipment'; 查詢語句
修改表字段自增
#我們創建表的時候id字段添加了serial,系統會為我們自動創建兩個序列表equipment_id_seq and super_villains_id_seq
#我們可以將他們綁定到id字段以實現自增(應該默認就綁定了)
#ALTER table equipment alter id set default nextval('equipment_id_seq');
#ALTER table super_villains alter id set default nextval('super_villains_id_seq');
插入數據
INSERT INTO equipment(name, status, special_move) VALUES('Utility Belt', 'Nice and yellow', 'All kind of cool stuff in your waist');
INSERT INTO super_villains(name, super_power, weakness) VALUES('The Joker', 'Extra Crazy', 'Super punch');
查詢數據
SELECT * from equipment;
SELECT * from super_villains;
配置允許遠程登錄
#編輯/var/lib/pgsql/9.6/data/postgresql.conf
#listen_addresses = 'localhost' 替換為 listen_addresses = '*'
配置用戶訪問權限
在配置文件pg_hba.conf中,將peer, ident均改成md5,這樣就可以像mysql一樣使用用戶名密碼登錄
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
命令行登錄
# psql -U postgres postgres -h 127.0.0.1
-U 指定登錄用戶 postgres
第二個postgres指明登錄的數據庫
-h 登錄主機地址