原文:https://blog.csdn.net/weixin_37791303/article/details/86707614
** 其實你修改了什么,就添加什么變量就好了!比如端口 修改成了 5455 ,就只是添加 :export PGPORT=5455 .不需要全部都配置 最后 source .bash_profile
使用postgresql數據庫的時候經常遇到的問題:
[postgres@test ~]$ psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
現象如上,但是數據庫是啟動狀態,
將以下環境變量加入到/root/.bash_profile或su - postgres;.bash_profile文件里面,執行source /root/.bash_profile
環境變量如下:
export LANG=C
export PGHOME=/usr/local/pgsql-10/
export PGUSER=postgres
export PGPORT=5432
export PGDATA=$PGHOME/data
export PATH=$PGHOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
[postgres@test ~]$ pg_ctl status
pg_ctl: server is running (PID: 1237)
/usr/local/pgsql-10/bin/postgres "-D" "/usr/local/pgsql-10/data"
問題原因:環境變量在安裝完數據庫沒有實際生效,重新通過如下命令使得環境變量生效:
source .bash_profile
重新連接,成功:
[postgres@test ~]$ psql
psql (10.4)
Type "help" for help.
postgres=#
--------------------------------------------------------------------------------------------------------------------------------------------------
**postgresql數據庫的兩個重要的配置文件:**
**一.postgresql.conf: 配置參數文件**
a. # 為注釋操作符
b. 配置格式: 參數名 = 參數值
c. 參數值大小不敏感.並有五種類型.
布爾,整數,浮點數,字符串,枚舉.
1.listen_addresses
指定服務器偵聽客戶端應用程序連接的TCP / IP地址
默認為UNIX域套接字鏈接. 默認值 = localhost.
(change requires restart)
2.port: integer類型, 指定服務器監聽的TCP端口,默認為5432;
3.max_connections: integer類型,允許和數據庫連接的最大並發連接數.默認是100;
4.superuser_reserved_connections: 為超級用戶鏈接而保留的連接數.默認是3.
**二 .pg_hba.conf: 配置縫合條件的IP機器訪問數據庫服務.每條記錄聲明一種連接類型,一個客戶端,一個ip地址范圍,一個數據庫名,一個用戶名,以及匹配這些參數的認證方法.**
pg10可以是下面四種方式:
(1) 第一條配置字段:
local: 匹配通過的UNIX域套接字的鏈接認證,默認為UNIX域套接字.
host: 匹配通過TCP/IP進行的鏈接, 包括 SSL,SS
hostssl:匹配使用TCP/IP的SSL鏈接,必須使用SSL加密鏈接,且要使用這個選項,編譯服務器時必須打開這個SSL支持,,啟動服務器時必須打開這個SSL配置選項.
hostnossl: 與hostssl 相反.
(2) DATABASE可以是“all”,“sameuser”,“samerole”,“replication”,數據庫名稱或逗號分隔的列表。
(3) USER 用於設置一個用戶的名稱,如果是all 表示可以匹配任何用戶.
(4)METHOD : 可以是:
trust: 無條件的允許鏈接.
reject:五條件的拒絕連接.
md5:要求客戶端提供一個加密的口令進行認證.
password: 要求客戶端提供一個未加密的口令進行連接.
gss: 用GSSAPI認證用戶,只有在進行TCP/IP鏈接時才用.
sspi: 用SSPI認證用戶,僅在windows 上使用.
krb5: Kerberos V5 認證用戶,只有在進行TCP/IP連接時才用.
ident:允許客戶端上的操作系統用戶鏈接到數據庫,服務器和客戶端在同一個操作系統用戶下.
ldap: 用LDAP服務器認證..
radius: 用RADIUS服務器認證,
cert: 用SSL客戶端證書認證.
pam: 用操作系統可插入的認證模塊服務PAM 來認證.
(5) ADDRESS : 表示允許那些IP 地址來訪問此服務器.
(6)OPTIONS : 表示認證選項.