pgsqlmysql
下載安裝包,網上搜索或者官網下載sql
官網地址:http://www.postgresql.org/ 數據庫
安裝過程:
vim
一、上傳至Linux服務器對應目錄,解壓下載的安裝包bash
tax -jxf postgresql-9.5.1.tar.bz2 服務器
cd postgresql-9.5.1.tar.bz2 tcp
./configure --prefix=/usr/local/pgsqlpost
編譯提示:spa
configure: error: readline library not found日誌
If you have readline already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
Use --without-readline to disable readline support.
從新編譯加上後綴:
./configure --prefix=/usr/local/pgsql --without-readline 便可
而後 make;make install
至此安裝完成
二、啓動數據庫
>1 建立用戶postgres
useradd postgres
echo "postgres" |passwd --stdin "postgres"
2> 建立pgsql的數據目錄
mkdir -p /data/pgsql/data
chown postgres:postgres /data/pgsql/data
3> 添加環境變量,我這裏添加的是全局的,若是是想在本身的我的用戶裏面,修改對應家目錄的文件~./bashrc
vim /etc/profile
export PATH=/usr/local/pgsql/bin:$PATH
export PGDATD=/data/pgsql/data
而後source /etc/profile 使其生效,若是能直接打出好比 post 能自動補全postgres,說明變量生效以及設置成功
4> 初始化數據庫,產生一下基礎文件
/usr/local/pgsql/bin/initdb –D /data/pgsql/data
開啓一些功能,好比日誌收集、歸檔以及歸檔大小
Vim /data/pgsql/data/postgresql.conf
logging_collector = on
log_rotation_age = 1d
log_rotation_size = 10MB
4> 啓動服務
/usr/local/pgsql/postgres –I -D /data/pgsql/data start &
這裏加上-i 的意思是容許客戶端進行tcp/ip的鏈接
至此pgsql 安裝啓動完畢,能夠本地鏈接
三、經常使用操做
1>本地以及遠程鏈接pgsql和賦權
createuser 是 SQL 命令 CREATE USER的封裝。
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主機名] [-p port] 用戶名
參數說明:
[-a]:容許建立其餘用戶,至關於建立一個超級用戶;
[-A]:不容許此用戶建立其餘用戶;
[-d]:容許此用戶建立數據庫;
[-D]:不容許此用戶建立數據庫;
[-e]:將執行過程顯示到Shell上;
[-P]:建立用戶時,同時設置密碼;
[-h 主機名]:爲某個主機上的Postgres建立用戶;
[-p port]:與-h參數一同使用,指定主機的端口。
舉例:鏈接 psql -d template1 -U postgres (用postgres用戶鏈接template1鏈接數據庫)
建立用戶並賦權
createuser -a -d -e -P ceshi -h IP (建立一個超級用戶,容許從那個IP登陸,固然這個ip是否容許登陸,還得看數據目錄下的兩個配置文件是否放行 listenning address ,默認是均可以鏈接)
刪除用戶:
dropuser -i -e username
2> 備份和恢復
pg_dump pg_dumpall
pg_dump dbname –U username > psqldateb.sql
psql dbname or tablename –U username < 備份數據
3> 其它平常命令
建立數據庫
不用鏈接進去,直接createdb dbname
若是此時有人在鏈接訪問,沒法建立,提示createdb: database creation failed: ERROR: source database "template1" is being accessed by other users
Create table +表數據
create index idx_t_imdba on t_imdba(id); 建立索引,關於哪一個表的哪一個字段,索引名字叫啥
日誌設置: 修改postgresql.conf 文件中的log_directory 的變量值
\du 查看有哪些用戶能夠鏈接,以及他們的權限是什麼
\c dbname 切換數據庫 至關於use dbname
\l 查看當前有多少數據庫 至關於 show databases
\d tablename 查看錶結構
\di 查看是否有索引
\dt 查看數據庫有多少表 至關於show tables
\di 至關於show index from table
\q or crtl+d 退出
select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database; 查看全部數據庫的大小
select pg_size_pretty(pg_database_size('mydb')); 查看某個數據的大小,以kb的方式來顯示
select pg_database_size('mydb');
四、其它
用客戶端鏈接pgsql數據庫操做方式和mysql,差很少,查詢增刪修改是同樣的