org.postgresql.util.PSQLException: FATAL: 没有 pg_hba.conf 条目,



我在这里看了很多(太多)类似的问题,并一遍又一遍地尝试解决这个问题,但我无法完全解决。

我有一个java代码,它连接到RHEL 8.2盒子上的PostGreSQL服务器来查询和返回一个值。 当我在 Windows 10 笔记本电脑上运行它时;它可以毫无问题地工作。 但是,当我在 Linux 盒子上本地运行它时,它失败了,并带有可怕的 org.postgresql.util.PSQLException:致命:主机没有 pg_hba.conf 条目。

java代码由一个名为Talend的ETL软件编写;代码由RunDeck在Linux上运行。

更令人困惑的是,我可以以 postgres 用户的身份登录 Linux 并使用 psql 界面连接到具有我在 Java 中使用的相同主机、端口、数据库和用户的数据库,而不会出错-

psql -h [server ip] -p 5432 -d my_special_db -U my_db_user

我已经检查了服务器设置,pg_hba.conf文件,用户权限,日志文件,并尝试更改上述所有内容以获得某种回报; 都无济于事。

我已添加到 pg_hba.conf:

host    my_special_db        my_db_user        [server ip]/32      md5
host    my_special_db        my_db_user        [server ip with .0 as the last quatraine]/24      md5
host    my_special_db        root        ::1/128      trust
host    all        all        [server ip]/32      trust

我尝试了多个连接修饰符,例如:

sslfactory=org.postgresql.ssl.NonValidatingFactory&sslmode=prefer
or
sslmode=prefer
or
sslmode=Require
or
no modifier at all

请指教。

详:

操作系统 名称 : Linux RHEL 8.2

版本 : 4.18.0-372.16.1.el8_6.x86_64

JVM

实施版本:11.0.15+9-LTS

名称 : OpenJDK 64 位服务器虚拟机

供应商 : Amazon.com 公司

版本 : 11.0.15

PostGreSQL

Postgresql11-libs-11.7-1PGDG.rhel8.x86_64.rpm \

PostgreSQL11-11.7-1PGDG.rhel8.x86_64.rpm \

PostgreSQL11-server-11.7-1PGDG.rhel8.x86_64.rpm

在服务器>属性下> SSL

所有默认值:

SSL 模式:首选

客户端证书:[空白]

客户端证书密钥:[空白]

根证书:[空白]

证书修订列表:[空白]

SSL 压缩?:否

//////////////////
Under /etc/systemd/system/postgresql-11.service
[Unit]
Description=PostgreSQL 11 database server
Documentation=https://www.postgresql.org/docs/11/static/
After=syslog.target
After=network.target
[Service]
Type=notify
User=postgres
Group=postgres
# Note: avoid inserting whitespace in these Environment= lines, or you may
# break postgresql-setup.
# Location of database directory
Environment=PGDATA=[my data directory path]
# Where to send early-startup messages from the server (before the logging
# options of postgresql.conf take effect)
# This is normally controlled by the global default set by systemd
# StandardOutput=syslog
# Disable OOM kill on the postmaster
OOMScoreAdjust=-1000
Environment=PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
Environment=PG_OOM_ADJUST_VALUE=0
ExecStartPre=[path to server]/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA}
ExecStart=[path to server]/pgsql-11/bin/postgres -D ${PGDATA}
#ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT

# Do not set any timeout value, so that systemd will not kill postmaster
# during crash recovery.
TimeoutSec=0
[Install]
WantedBy=multi-user.target

[Service]
Environment=PGDATA=[my data directory path]
//////////////////
//////////////////
Top of the pg_hba.conf file:
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# linux requires a 'local' entry
#local all all md5
local    all             all                     md5
# IPv4 local connections:
host    all        all        0.0.0.0/0      md5
# IPv6 local connections:
host    all        all        ::0/0      md5
# no ssl connection
hostnossl    all        all        0.0.0.0/0      trust
# IPv4 local connections:
hostnossl    all        all        127.0.0.1/32      md5
# IPv6 local connections:
hostnossl    all        all        ::1/128      md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    replication        all        127.0.0.1/32      md5
host    replication        all        ::1/128      md5
# This Servers IP and Ranges as Talend doesn't use localhost
host    postgres        postgres        [server ip]/32      md5
host    postgres        all             [server ip with .0 as the last quatraine]/24        md5
host    all             postgres        [server ip]/32      md5
host    all             all             [server ip with .0 as the last quatraine]/24        md5
host    my_special_db        my_db_user        [server ip]/32      md5
host    my_special_db        my_db_user        [server ip with .0 as the last quatraine]/24      md5
host    my_special_db        root        ::1/128      trust
host    all        all        [server ip]/32      trust
//////////////////
//////////////////
Part of My Java Code:

conn_tDBInput_1 = (java.sql.Connection) globalMap.get("conn_tDBConnection_2");
java.sql.Statement stmt_tDBInput_1 = conn_tDBInput_1.createStatement();
String dbquery_tDBInput_1 = "n(SELECT ID AS "id"n, ATTRIBUTE AS "attribute"n, DEFINITION AS "definition"n, DESCRIPTION AS "description""
+ "nFROM " + context.SEC_DB_SCHEMA + "." + context.SEC_DB_TABLE
+ "nWHERE "description" = 'my_filter_here'nLIMIT 1);nn";
globalMap.put("tDBInput_1_QUERY", dbquery_tDBInput_1);
java.sql.ResultSet rs_tDBInput_1 = null;
try {
rs_tDBInput_1 = stmt_tDBInput_1.executeQuery(dbquery_tDBInput_1);
java.sql.ResultSetMetaData rsmd_tDBInput_1 = rs_tDBInput_1.getMetaData();
int colQtyInRs_tDBInput_1 = rsmd_tDBInput_1.getColumnCount();
String tmpContent_tDBInput_1 = null;
while (rs_tDBInput_1.next()) {
nb_line_tDBInput_1++;
if (colQtyInRs_tDBInput_1 < 1) {
row1.ID = 0;
} else {
row1.ID = rs_tDBInput_1.getInt(1);
if (rs_tDBInput_1.wasNull()) {
throw new RuntimeException("Null value in non-Nullable column");
}
}
if (colQtyInRs_tDBInput_1 < 2) {
row1.ATTRIBUTE = null;
} else {
row1.ATTRIBUTE = routines.system.JDBCUtil.getString(rs_tDBInput_1, 2, false);
}
if (colQtyInRs_tDBInput_1 < 3) {
row1.DEFINITION = null;
} else {
row1.DEFINITION = routines.system.JDBCUtil.getString(rs_tDBInput_1, 3, false);
}
if (colQtyInRs_tDBInput_1 < 4) {
row1.DESCRIPTION = null;
} else {
row1.DESCRIPTION = routines.system.JDBCUtil.getString(rs_tDBInput_1, 4, false);
}
/**
* [tDBInput_1 begin ] stop
*/
/**
* [tDBInput_1 main ] start
*/
currentComponent = "tDBInput_1";
tos_count_tDBInput_1++;
/**
* [tDBInput_1 main ] stop
*/
/**
* [tDBInput_1 process_data_begin ] start
*/
currentComponent = "tDBInput_1";
/**
* [tDBInput_1 process_data_begin ] stop
*/
/**
* [tReplicate_1 main ] start
*/
currentComponent = "tReplicate_1";
if (execStat) {
runStat.updateStatOnConnection(iterateId, 1, 1
, "row1"
);
}
row5 = new row5Struct();

row5.ID = row1.ID;
row5.ATTRIBUTE = row1.ATTRIBUTE;
row5.DEFINITION = row1.DEFINITION;
row5.DESCRIPTION = row1.DESCRIPTION;
globalMap.put("row5.ATTRIBUTE", row5.ATTRIBUTE);
globalMap.put("row5.DEFINITION", row5.DEFINITION);
// Set Reports DB values
context.DB_HOST = [my_server_ip];
context.DB_NAME = [my_db];
context.DB_PORT = 5432;
// This will have to be changed for each tower will have it's own 'reports' table
context.DB_SCHEMA = "my_schema";
context.DB_TABLE = "my_table";
context.DB_USER = (String)(globalMap.get("row5.ATTRIBUTE"));
context.DB_PWD = (String)(globalMap.get("row5.DEFINITION"));
//------------
currentComponent="tDBConnection_1";

int tos_count_tDBConnection_1 = 0;



String dbProperties_tDBConnection_1 = "sslfactory=org.postgresql.ssl.NonValidatingFactory&sslmode=prefer";
String url_tDBConnection_1 = "jdbc:postgresql://"+context.DB_HOST+":"+context.DB_PORT+"/"+context.DB_NAME;

if(dbProperties_tDBConnection_1 != null && !"".equals(dbProperties_tDBConnection_1.trim())) {
url_tDBConnection_1 = url_tDBConnection_1 + "?" + dbProperties_tDBConnection_1;
}
String dbUser_tDBConnection_1 = context.DB_USER;

//////////////////
//////////////////
Log entry from the time of trying to connect both locally and remotely-
2022-08-23 15:20:45.452 EDT [67687] LOG:  database system is ready to accept connections
2022-08-23 15:22:00.719 EDT [67687] LOG:  received fast shutdown request
2022-08-23 15:22:00.720 EDT [67687] LOG:  aborting any active transactions
2022-08-23 15:22:00.722 EDT [67687] LOG:  background worker "logical replication launcher" (PID 67696) exited with exit code 1
2022-08-23 15:22:00.722 EDT [67691] LOG:  shutting down
2022-08-23 15:22:00.754 EDT [67687] LOG:  database system is shut down
2022-08-23 15:22:00.814 EDT [67739] LOG:  database system was shut down at 2022-08-23 15:22:00 EDT
2022-08-23 15:22:00.818 EDT [67735] LOG:  database system is ready to accept connections
2022-08-23 15:52:25.666 EDT [67735] LOG:  received fast shutdown request
2022-08-23 15:52:25.668 EDT [67735] LOG:  aborting any active transactions
2022-08-23 15:52:25.669 EDT [67735] LOG:  background worker "logical replication launcher" (PID 67745) exited with exit code 1
2022-08-23 15:52:25.669 EDT [67740] LOG:  shutting down
2022-08-23 15:52:25.692 EDT [67735] LOG:  database system is shut down
2022-08-23 15:52:34.188 EDT [79803] LOG:  database system was shut down at 2022-08-23 15:52:25 EDT
2022-08-23 15:52:34.194 EDT [79801] LOG:  database system is ready to accept connections
//////////////////////////////////////

更新: 这是我可以分享的很多 java 错误消息;鉴于我可以发布的内容的一些限制;

error message :: FATAL: no pg_hba.conf entry for host "[my_server_ip]", user "my_db_user", database "my_db", SSL off|4
Exception in component tDBConnection_2 (Generic_Talend_Job)
org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "[my_server_ip]", user "my_db_user", database "my_db", SSL off
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:613)
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:161)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:51)
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:223)
at org.postgresql.Driver.makeConnection(Driver.java:465)
at org.postgresql.Driver.connect(Driver.java:264)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.tDBConnection_2Process(Generic_Talend_Job.java:5752)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.tSystem_1Process(Generic_Talend_Job.java:5614)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.tJava_3Process(Generic_Talend_Job.java:5342)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.tWarn_1Process(Generic_Talend_Job.java:5094)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.tFileInputDelimited_1Process(Generic_Talend_Job.java:4851)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.tLibraryLoad_1Process(Generic_Talend_Job.java:4089)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.tPrejob_1Process(Generic_Talend_Job.java:3856)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.runJobInTOS(Generic_Talend_Job.java:11916)
at local_project.generic_talend_job_0_1.Generic_Talend_Job.main(Generic_Talend_Job.java:11245)
Suppressed: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "[my_server_ip]", user "my_db_user", database "my_db", SSL off
at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:613)
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:161)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:222)
... 15 more
sec db connection failure, error message :: FATAL: no pg_hba.conf entry for host "[my_server_ip]", user "my_db_user", database "my_db", SSL off

更新 2: 今天早上的条目在再次尝试并得到相同的错误后在/data_folder/log 处记录

[postgres@my_server_name log]$ vim postgresql-Wed.log
2022-08-24 10:00:17.714 EDT [79801] LOG:  received fast shutdown request
2022-08-24 10:00:17.717 EDT [79801] LOG:  aborting any active transactions
2022-08-24 10:00:17.717 EDT [508177] FATAL:  terminating connection due to administrator command
2022-08-24 10:00:17.717 EDT [508176] FATAL:  terminating connection due to administrator command
2022-08-24 10:00:17.718 EDT [79801] LOG:  background worker "logical replication launcher" (PID 79809) exited with exit code 1
2022-08-24 10:00:17.718 EDT [79804] LOG:  shutting down
2022-08-24 10:00:17.740 EDT [79801] LOG:  database system is shut down
2022-08-24 10:00:35.780 EDT [513920] LOG:  database system was shut down at 2022-08-24 10:00:17 EDT
2022-08-24 10:00:35.788 EDT [513918] LOG:  database system is ready to accept connections

更新 3:

从 postgresql.conf 文件:

#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*'      # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432             # (change requires restart)
max_connections = 100           # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '/var/run/postgresql, /tmp'  # comma-separated list of directories
# (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off              # advertise server via Bonjour
# (change requires restart)
#bonjour_name = ''          # defaults to the computer name
# (change requires restart)
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0        # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0        # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0       # TCP_KEEPCNT;
# 0 selects the system default
# - Authentication -
#authentication_timeout = 1min      # 1s-600s
#password_encryption = md5      # md5 or scram-sha-256
#db_user_namespace = off
# GSSAPI using Kerberos
#krb_server_keyfile = ''
#krb_caseins_users = off
# - SSL -
#ssl = off
#ssl_ca_file = ''
#ssl_cert_file = 'server.crt'
#ssl_crl_file = ''
#ssl_key_file = 'server.key'
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
#ssl_prefer_server_ciphers = on
#ssl_ecdh_curve = 'prime256v1'
#ssl_dh_params_file = ''
#ssl_passphrase_command = ''
#ssl_passphrase_command_supports_reload = off

更新 4:

在进行了更多搜索之后,我发现 postgres 日志记录的默认值并不冗长;所以这是详细部分:

[636130] [630676b4.9b4e2] [2022-08-24 15:06:28.850 EDT] [] [F0000] [] [] [] [] [] [7] [0]:  LOG:  hostssl record cannot match because SSL is disabled
[636130] [630676b4.9b4e2] [2022-08-24 15:06:28.850 EDT] [] [F0000] [] [] [] [] [] [8] [0]:  HINT:  Set ssl = on in postgresql.conf.
[636130] [630676b4.9b4e2] [2022-08-24 15:06:28.850 EDT] [] [F0000] [] [] [] [] [] [9] [0]:  CONTEXT:  line 103 of configuration file "[data folder path]/pg_hba.conf"
[636132] [630676b4.9b4e4] [2022-08-24 15:06:28.854 EDT] [] [00000] [] [] [] [] [] [1] [0]:  LOG:  database system was shut down at 2022-08-24 15:06:18 EDT
[636130] [630676b4.9b4e2] [2022-08-24 15:06:28.859 EDT] [] [00000] [] [] [] [] [] [10] [0]:  LOG:  database system is ready to accept connections

即使在以下更新之后,我也收到了此错误-

更新到 postgresql.conf 文件:

edit 1
ssl = off
edit 2
ssl = on
edit 3
#ssl = off

将 postgresql.conf 文件中的日志级别更新为

log_line_prefix = '[%p] [%c] [%m] [%v] [%e] [%i] [%d] [%u] [%a] [%r] [%l] [%x]:  '  
...
log_statement = 'all'   

更新了 pg_hba.conf 文件以开头:

# Allow any user on the local system to connect to any database with
# any database user name using Unix-domain sockets (the default for local
# connections).
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     trust
# The same using local loopback TCP/IP connections.
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             127.0.0.1/32            trust
# The same as the previous line, but using a separate netmask column
#
# TYPE  DATABASE        USER            IP-ADDRESS      IP-MASK             METHOD
host    all             all             127.0.0.1       255.255.255.255     trust
# The same over IPv6.
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             ::1/128                 trust
# The same using a host name (would typically cover both IPv4 and IPv6).
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             localhost               trust
hostssl    all        all        0.0.0.0/0      md5

还更新了连接参数-

sslfactory=org.postgresql.ssl.NonValidatingFactory

根据postgres的说法,这应该可以停止任何和所有SSL问题,并让连接通过-

https://jdbc.postgresql.org/documentation/head/ssl-client.html

"非验证连接是通过驱动程序提供的自定义SSLSocketFactory类建立的。设置连接 URL 参数 sslfactory=org.postgresql.ssl.NonValidatingFactory 将关闭所有 SSL 验证。

更新 5:

来自 postgresql.conf 文件的日志记录设置:

#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'stderr'      # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform.  csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on          # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'log'           # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%a.log'  # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600           # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on       # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation.  Default is
# off, meaning append to existing files
# in all cases.
log_rotation_age = 1d           # Automatic rotation of logfiles will
# happen after that time.  0 disables.
log_rotation_size = 0           # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
#syslog_sequence_numbers = on
#syslog_split_messages = on
# This is only relevant when logging to eventlog (win32):
# (change requires restart)
#event_source = 'PostgreSQL'
# - When to Log -
#log_min_messages = warning     # values in order of decreasing detail:
#   debug5
#   debug4
#   debug3
#   debug2
#   debug1
#   info
#   notice
#   warning
#   error
#   log
#   fatal
#   panic
#log_min_error_statement = error    # values in order of decreasing detail:
#   debug5
#   debug4
#   debug3
#   debug2
#   debug1
#   info
#   notice
#   warning
#   error
#   log
#   fatal
#   panic (effectively off)
#log_min_duration_statement = -1    # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds

# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default      # terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '[%p] [%c] [%m] [%v] [%e] [%i] [%d] [%u] [%a] [%r] [%l] [%x]:  '      # special values:
#   %a = application name
#   %u = user name
#   %d = database name
#   %r = remote host and port
#   %h = remote host
#   %p = process ID
#   %t = timestamp without milliseconds
#   %m = timestamp with milliseconds
#   %n = timestamp with milliseconds (as a Unix epoch)
#   %i = command tag
#   %e = SQL state
#   %c = session ID
#   %l = session line number
#   %s = session start timestamp
#   %v = virtual transaction ID
#   %x = transaction ID (0 if none)
#   %q = stop here in non-session
#        processes
#   %% = '%'
# e.g. '<%u%%%d> '
#log_lock_waits = off           # log lock waits >= deadlock_timeout
log_statement = 'all'           # none, ddl, mod, all
#log_replication_commands = off
#log_temp_files = -1            # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'America/New_York'

更新 6:

我对配置的日志记录部分进行了编辑,现在日志中有很多输出

新的日志记录设置:

#------------------------------------------------------------------------------
# REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'stderr'      # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# depending on platform.  csvlog
# requires logging_collector to be on.
# This is used when logging to stderr:
logging_collector = on          # Enable capturing of stderr and csvlog
# into log files. Required to be on for
# csvlogs.
# (change requires restart)
# These are only used if logging_collector is on:
log_directory = 'log'           # directory where log files are written,
# can be absolute or relative to PGDATA
log_filename = 'postgresql-%a.log'  # log file name pattern,
# can include strftime() escapes
#log_file_mode = 0600           # creation mode for log files,
# begin with 0 to use octal notation
log_truncate_on_rotation = on       # If on, an existing log file with the
# same name as the new log file will be
# truncated rather than appended to.
# But such truncation only occurs on
# time-driven rotation, not on restarts
# or size-driven rotation.  Default is
# off, meaning append to existing files
# in all cases.
log_rotation_age = 1d           # Automatic rotation of logfiles will
# happen after that time.  0 disables.
log_rotation_size = 0           # Automatic rotation of logfiles will
# happen after that much log output.
# 0 disables.
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
#syslog_sequence_numbers = on
#syslog_split_messages = on
# This is only relevant when logging to eventlog (win32):
# (change requires restart)
#event_source = 'PostgreSQL'
# - When to Log -
log_min_messages = debug5       # values in order of decreasing detail:
#   debug5
#   debug4
#   debug3
#   debug2
#   debug1
#   info
#   notice
#   warning
#   error
#   log
#   fatal
#   panic
log_min_error_statement = debug5    # values in order of decreasing detail:
#   debug5
#   debug4
#   debug3
#   debug2
#   debug1
#   info
#   notice
#   warning
#   error
#   log
#   fatal
#   panic (effectively off)
log_min_duration_statement = 0  # -1 is disabled, 0 logs all statements
# and their durations, > 0 logs only
# statements running at least this number
# of milliseconds

# - What to Log -
#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
log_connections = on
log_disconnections = on
#log_duration = off
log_error_verbosity = verbose       # terse, default, or verbose messages
log_hostname = on
log_line_prefix = '[%p] [%c] [%m] [%v] [%e] [%i] [%d] [%u] [%a] [%r] [%l] [%x]:  '      # special values:
#   %a = application name
#   %u = user name
#   %d = database name
#   %r = remote host and port
#   %h = remote host
#   %p = process ID
#   %t = timestamp without milliseconds
#   %m = timestamp with milliseconds
#   %n = timestamp with milliseconds (as a Unix epoch)
#   %i = command tag
#   %e = SQL state
#   %c = session ID
#   %l = session line number
#   %s = session start timestamp
#   %v = virtual transaction ID
#   %x = transaction ID (0 if none)
#   %q = stop here in non-session
#        processes
#   %% = '%'
# e.g. '<%u%%%d> '
#log_lock_waits = off           # log lock waits >= deadlock_timeout
log_statement = 'all'           # none, ddl, mod, all
#log_replication_commands = off
#log_temp_files = -1            # log temporary files equal or larger
# than the specified size in kilobytes;
# -1 disables, 0 logs all temp files
log_timezone = 'America/New_York'

我无法将错误日志粘贴到此处,因为将其详细化后很长 - 所以我做了一个要点

最后更新:

我删除了要点,因为这里的窥视帮助我找到了错误:

好的,所以问题是 3 件事; 事情 1,我们有一个"属性"文件,我认为它已在此数据库中设置为此服务器; 它不是//事情 2,默认日志记录设置为"警告"并且没有足够的信息,因此在将其放入调试级别 5(最多数据)和"所有"事件后;我终于看到了一条错误消息,让我意识到它指向了错误的 db//事物 3,在我添加然后删除 IP 地址的 pg_hba.conf 文件的多次(太多)迭代中。 所以现在它正在工作,哈哈 有时你离铁轨太近了,看不到火车,哈哈

我删除了要点,因为这里的窥视帮助我找到了我的错误:

好的,所以问题是 3 件事; 事情 1,我们有一个"属性"文件,我认为它已在此数据库中设置为此服务器; 它不是//事情 2,默认日志记录设置为"警告"并且没有足够的信息,因此在将其放入调试级别 5(最多数据)和"所有"事件后;我终于看到了一条错误消息,让我意识到它指向了错误的 db//事物 3,在我添加然后删除 IP 地址的 pg_hba.conf 文件的多次(太多)迭代中。所以现在它正在工作,哈哈有时你离铁轨太近而看不到火车,哈哈

最新更新