您好,登錄后才能下訂單哦!
這篇文章主要講解了“Centos7安裝和配置Postgresql數據庫及Navicat連接”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Centos7安裝和配置Postgresql數據庫及Navicat連接”吧!
Postgresql官網Linux Red Hat族系統的Postgresql的下載安裝地址:
https://www.postgresql.org/download/linux/redhat/
1.安裝最新版
進入網址,可以根據提示安裝最新的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:
yum install postgresql-server postgresql-setup initdb //首次初始化數據庫,只能初始化一次 systemctl enable postgresql.service //設置開機自啟動,可不開啟,但是每次使用都需要開啟服務 systemctl start postgresql.service //開啟服務
關閉服務:systemctl stop postgresql.service
重啟服務:systemctl restart postgresql.service
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認證方式,卻沒有同名的操作系統用戶或沒有相應的映射用戶。解決方案:
1、在pg_ident.conf中添加映射用戶;
2、改變認證方式:
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,最后點擊確定即可。
感謝各位的閱讀,以上就是“Centos7安裝和配置Postgresql數據庫及Navicat連接”的內容了,經過本文的學習后,相信大家對Centos7安裝和配置Postgresql數據庫及Navicat連接這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。