Postgresql官網Linux Red Hat族系統的Postgresql的下載安裝地址:linux
https://www.postgresql.org/download/linux/redhat/sql
1.安裝最新版shell
進入網址,能夠根據提示安裝最新的Postgresql11:數據庫
對應的shell代碼:安全
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum install postgresql11 yum install postgresql11-server /usr/pgsql-11/bin/postgresql-11-setup initdb //首次初始化數據庫,只能初始化一次 systemctl enable postgresql-11 //開啓系統登錄自啓動 systemctl start postgresql-11 //開啓服務
2.安裝包含於Linux發行版本的Postgresql服務器
安裝Centos7發行版本中的Postgresql9.2:ide
yum install postgresql-server postgresql-setup initdb //首次初始化數據庫,只能初始化一次 systemctl enable postgresql.service //設置開機自啓動,可不開啓,可是每次使用都須要開啓服務 systemctl start postgresql.service //開啓服務
關閉服務:systemctl stop postgresql.service
工具
重啓服務:systemctl restart postgresql.service
post
3.【補充】如何再次初始化測試
直接再次執行初始化命令會報錯:
由於Postgresql默認路徑/var/lib/pgsql/
下的data
文件夾非空
查看一下:ll -lhtr /var/lib/pgsql/data
刪除裏面的全部文件:rm -rf /var/lib/pgsql/data/*
從新運行初始化:postgresql-setup initdb
4.爲Postgresql添加新用戶和新數據庫
初次安裝後,默認生成一個名爲postgres的數據庫和一個名爲postgres的數據庫用戶。同時還生成了一個名爲postgres的Linux系統用戶。
(1)使用postgres用戶,來生成其餘用戶和新數據庫。
切換到postgres用戶:# su - postgres
下一步,使用psql
命令登陸PostgreSQL控制檯:
這時至關於系統用戶postgres以同名數據庫用戶的身份,登陸數據庫,這是不用輸入密碼的。若是一切正常,系統提示符會變爲"postgres=#",表示這時已經進入了數據庫控制檯。
先使用\password postgres
命令,爲postgres用戶設置一個密碼:
(或者經過命令alter user postgres password 'YourPassword';
來設置用戶postgres的密碼)
使用\q
命令(或直接按ctrl+D)退出。再次登錄就須要密碼了:
僅建立數據庫用戶不建立對應的linux用戶,建立一個名字爲testuser
的用戶:
CREATE USER testuser WITH PASSWORD 'abc';
建立一個名爲test1
的測試數據庫:create database test1;
(這裏爲建立用戶數據庫,能夠指定全部者:CREATE DATABASE test1 OWNER testuser;
)
將test1
數據庫的全部權限都賦予testuser
,不然testuser
只能登陸控制檯,沒有任何數據庫操做權限。
GRANT ALL PRIVILEGES ON DATABASE test1 to testuser;
最後測試:
5.【補充】Postgresql數據庫基本命令
登錄命令:psql -h 127.0.0.1 -U testuser -d test1 -p 5432
psql命令參數說明:
-h:數據庫IP -U:登陸用戶 -d:登陸的數據庫 -p:登陸端口
\dt
:列出當前數據庫全部表
列出表名
SELECT tablename FROM pg_tables; WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql_%' ORDER BY tablename;
\l
:列出數據庫名(或 SELECT datname FROM pg_database;
)
\c [數據庫名]
:切換數據庫
\d [數據庫]
:獲得全部表的名字
\d [表名]
: 獲得表結構
經過SQL語句查詢
select * from pg_tables
:獲得當前db中全部表的信息(這裏pg_tables是系統視圖)
select tablename from pg_tables where schemaname='public'
:獲得全部用戶自定義表的名字(這裏"tablename"字段是表的名字,"schemaname"是schema的名字。用戶自定義的表,若是未經特殊處理,默認都是放在名爲public的schema下)
6.配置第三方用戶登錄數據庫
完成以上配置,數據庫僅僅只能進入對應數據庫名字的linux用戶下,才能進入訪問,不然報Ident錯誤和Navicat沒法鏈接成功。
查找數據庫的配置文件:# find / -name pg_hba.conf
打開:# vi /var/lib/pgsql/data/pg_hba.conf
將沒註釋掉的那3個的驗證方法的peer
和ident
修改md5
:
【說明】:
METHOD指定如何處理客戶端的認證。經常使用的有ident,md5,password,trust,reject
ident是Linux下PostgreSQL默認的local認證方式,凡是能正確登陸服務器的操做系統用戶(注:不是數據庫用戶)就能使用本用戶映射的數據庫用戶不需密碼登陸數據庫。用戶映射文件爲pg_ident.conf,這個文件記錄着與操做系統用戶匹配的數據庫用戶,若是某操做系統用戶在本文件中沒有映射用戶,則默認的映射數據庫用戶與操做系統用戶同名。好比,服務器上有名爲user1的操做系統用戶,同時數據庫上也有同名的數據庫用戶,user1登陸操做系統後能夠直接輸入psql,以user1數據庫用戶身份登陸數據庫且不需密碼。不少初學者都會遇到psql -U username登陸數據庫卻出現「username ident 認證失敗」的錯誤
,明明數據庫用戶已經createuser。緣由就在於此,使用了ident認證方式,卻沒有同名的操做系統用戶或沒有相應的映射用戶。解決方案:
一、在pg_ident.conf中添加映射用戶;
二、改變認證方式:
md5
是經常使用的密碼認證方式,若是你不使用ident,最好使用md5。密碼是以md5形式傳送給數據庫,較安全,且不需創建同名的操做系統用戶。
password
是以明文密碼傳送給數據庫,建議不要在生產環境中使用。
trust
是隻要知道數據庫用戶名就不須要密碼或ident就能登陸,建議不要在生產環境中使用。
reject
是拒絕認證。
在文件查找 listen_addresses
,他的值說明若是但願只能從本地計算機訪問PostgreSQL數據庫,就將該項設置爲localhost
;
若是但願從局域網訪問PostgreSQL數據庫,就將該項設置爲PostgreSQL數據庫的局域網IP地址;
若是但願從互聯網訪問PostgreSQL數據庫,就將該項設置爲PostgreSQL數據庫的互聯網IP地址;
若是但願從任何地方均可以訪問PostgreSQL數據庫,就將該配置項設置爲「*」;
7.配置Navicat可視化管理工具
列出全部端口:netstat -ntlp
把端口和密碼對應填入,測試鏈接,若是報Ident錯誤
,請執行步驟6,最後點擊肯定便可。