(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# cat test1.py
#!/usr/bin/env python3
import argparse
import os
import sys
def main() -> int:
try:
import gaussdb
except Exception as exc:
print(f"[ERROR] Failed to import gaussdb: {exc}")
return 3
print("[INFO] gaussdb module:", getattr(gaussdb, "__file__", "<unknown>"))
print("[INFO] gaussdb version:", getattr(gaussdb, "__version__", "<unknown>"))
conn = None
try:
conn = gaussdb.connect('host=127.0.0.1 port=3333 dbname=database_name user=username password=password', connect_timeout=10)
with conn.cursor() as cur:
cur.execute("select 1")
row = cur.fetchone()
print("[OK] Connection succeeded, query result:", row)
return 0
except Exception as exc:
print(f"[ERROR] Connection/query failed: {exc}")
return 1
finally:
if conn is not None:
try:
conn.close()
except Exception:
pass
if __name__ == "__main__":
sys.exit(main())
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# export LD_LIBRARY_PATH=/workspace/test_gaussdb/gaussdb-505.2-libpq/lib #使用505.2版本libpq不coredump
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# python test1.py
[INFO] gaussdb module: /workspace/test_gaussdb/gaussdb-python/gaussdb/gaussdb/__init__.py
[INFO] gaussdb version: 1.0.4
[ERROR] Connection/query failed: connection failed: could not connect to server: Operation now in progress
Is the server running on host "127.0.0.1" and accepting
TCP/IP connections on port 3333?
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# export LD_LIBRARY_PATH=/workspace/test_gaussdb/gaussdb-506.0-libpq/lib #使用506.0版本libpq会coredump
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# python test1.py
[INFO] gaussdb module: /workspace/test_gaussdb/gaussdb-python/gaussdb/gaussdb/__init__.py
[INFO] gaussdb version: 1.0.4
Segmentation fault (core dumped)
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# arch
aarch64
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# python --version
Python 3.11.14
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# cat test_pq.c
#include <stdio.h>
#include <stdlib.h>
#include <libpq-fe.h>
int main() {
// 连接字符串,请根据实际情况修改数据库名、用户名、密码和主机
PGconn *conn = PQconnectdb("dbname=postgres user=postgres password=secret host=localhost");
if (PQstatus(conn) != CONNECTION_OK) {
fprintf(stderr, "连接失败: %s", PQerrorMessage(conn));
PQfinish(conn);
exit(1);
}
printf("成功连接到 PostgreSQL\n");
PQfinish(conn);
return 0;
}(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# gcc -o test_pq test_pq.c -I/workspace/test_gaussdb/gaussdb-506.0-libpq/include -L/workspace/test_gaussdb/gaussdb-506.0-libpq/lib -lpq
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]# ./test_pq
连接失败: could not connect to server: Operation now in progress
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Operation now in progress
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
(.env311) [root@ae910d8786f844c4b317045140860809 test_gaussdb]#
写C程序直接调用506.0的libpq不会coredump
下面是GPT-5.3-CODEX的分析