0

Postgresql 角色是 db 'university' 的所有者,它的配置如下:

更改用户独木舟密码“mypassword”;

C 中的一段嵌入式 SQL 代码只是与 DB 建立连接。

printf("SQLSTATE=[%s]\n", SQLSTATE);
EXEC SQL CONNECT TO 'university' USER 'canoe/mypassword'
printf("SQLSTATE=[%s]\n", SQLSTATE);

代码被编译和链接。它在运行 postgresql 服务器的本地主机上运行并在其默认端口上侦听。

$ ecpg connection.pgc
$ gcc -I/usr/include/postgresql connection.c -o conn -lecpg

编译后的代码输出为:

SQLSTATE=[00000]
SQLSTATE=[08001]

错误代码 08001 表示“sqlclient_unable_to_establish_sqlconnection”。我已更改 postgresql 的配置以记录所有连接尝试以调试代码。

LOG:参数“log_connections”更改为“on”
LOG:00000:参数“log_error_verbosity”更改为“verbose”

但是,运行编译后的代码时,没有任何错误。当我将它与 pgsql 连接时,它有日志信息。

$ pqsql university -W
LOG:连接授权:用户=canoe 数据库=大学

我注意到的有线事情是即使我在提示后输入错误的密码,我仍然可以获得授权。但是我的一段 C 代码不起作用。

我无法解决问题或有任何想法进一步调试它。知道问题出在哪里吗?

4

0 回答 0