我需要通过OpenAPI连接到Ingres提供的demodb,在Windows上运行Ingres和C应用程序。我做了什么:
但是IIapi_connect()调用会返回错误:
“用户提供了一个vnode作为数据库名称(vnode :: dbname)的一部分,但缺少该vnode的连接信息。使用NETUTIL输入vnode的连接信息。”
有人知道一些奇怪的概念“节点”吗?
成功连接所需的最小步骤(在数据库管理和函数参数传递中)是什么?
答案 0 :(得分:2)
您收到以下错误,因为您的用户ID尚未添加到服务器中。
“用户提供了一个vnode作为其中的一部分 数据库名称(vnode :: dbname),但是 该vnode的连接信息 不见了。输入连接 使用vnode的信息 NETUTIL“。
我猜测传递的用户ID是在虚拟节点(又名vnode)定义中定义的,并且需要将该用户添加到服务器上的用户列表中。以下内容将从命令行添加用户,将USERNAME更改为您要添加的用户名:
对于Windows:
echo "create user USERNAME\g" | sql iidbdb
对于UNIX / Linux / OS X:
sql iidbdb <<EOSQL
create user USERNAME\g
\q
或者,您可以在连接中使用动态vnode,以便 co_target 指定所有连接信息(包括用户详细信息):
@server,protocol,listen_address[user,password]::database
例如
@localhost,tcp_ip,II[ingres,secret]::iidbdb
如果您想查看Ingres的OpenAPI代码的工作示例,请查看Ingres PECL扩展名。
答案 1 :(得分:1)
有问题吗?