我在这里看了很多(太多)类似的问题,并一遍又一遍地尝试解决这个问题,但我无法完全解决。
我有一个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 文件的多次(太多)迭代中。所以现在它正在工作,哈哈有时你离铁轨太近而看不到火车,哈哈