Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - 数据库管理 » 启动并连接到数据库 » 连接参数和网络协议选项 » 网络协议选项

 

ServerPort 协议选项 [PORT]

指定运行数据库服务器的端口。

用法

TCP/IP、HTTP、HTTPS

整数

缺省值

TCP/IP 的缺省值为 2638。HTTP 的缺省值为 80。HTTPS 的缺省值为 443。

注释

Internet 编号授权委员会已经将端口号 2638 指派用于 SQL Anywhere 数据库服务器的 TCP/IP 通信。但是,并不禁止其它应用程序使用这个保留端口,而且这可能会导致在数据库服务器和其它应用程序之间发生寻址冲突。

对于数据库服务器,ServerPort 协议选项指定使用 TCP/IP 在其上进行通信的端口号。您可以指定一个端口号,也可以指定单个端口号和端口号范围的组合。例如:

如果指定端口号的列表和/或范围,数据库服务器会尝试绑定到所有指定的端口号。

数据库服务器在大多数操作系统上总是在 UDP 端口 2638 上进行监听,即使您使用网络协议选项指定一个不同的端口时也是如此。应用程序可在不指定端口号的情况下连接到数据库服务器。使该端口可用允许 SQL Anywhere 客户端穿过防火墙查找运行于其它子网上的 SQL Anywhere 数据库服务器。

对于客户端,ServerPort 协议选项会将数据库服务器正在监听 TCP/IP 通信的端口通知客户端。客户端向由 ServerPort (PORT) 协议选项指定的每个端口进行广播以查找该服务器。

如果使用 Web 服务器,缺省情况下,数据库服务器监听标准的 HTTP 和 HTTPS 端口(分别为 80 和 443)。

如果使用 TCP/IP 端口号 2638(缺省值)启动数据库服务器,则服务器还会监听 UDP 端口 2638。数据库服务器监听 UDP 端口并响应这些端口的请求,以便客户端可以通过服务器名找到该数据库服务器。

如果数据库服务器的 TCP/IP 端口号不是 2638,则服务器监听与 TCP/IP 端口相同的 UDP 端口。

数据库服务器为响应客户端广播而发送的 UDP 数据包不包含敏感信息。这些数据包中所含的数据仅限于下列项:

您可以使用 -dh 选项对广播请求隐藏数据库名称。还可以指定 -sb 0 以完全禁用 UDP 监听器。

在 Mac OS X 上的差别

Mac OS X 不允许在同一 UDP 端口绑定多个进程。如果数据库服务器在其中一个平台上运行,则只监听指定的 UDP 端口,如果未指定端口则监听端口 2638。

也就是说,如果服务器未使用缺省端口 (2638),则客户端必须 指定 TCP/IP 端口号。

例如,如果使用命令 dbsrv11 -n MyServer samples-dir/demo.db 启动数据库服务器,则位于同一子网的客户端可使用以下连接参数 ENG=MyServer;LINKS=tcpip 来查找该服务器。如果使用以下命令 dbsrv11 -n SecondServer -x tcpip(PORT=7777) samples-dir/demo.db 在 Mac OS X 上启动另一个服务器,则位于同一子网的客户端可使用连接参数 ENG=SecondServer;LINKS=tcpip(PORT=7777) 来查找该服务器。请注意,如果数据库服务器在非 Mac OS X 的平台上运行,则客户端无需指定 PORT 参数。

此外,在 Mac OS X 上,如果已有一个 SQL Anywhere 数据库服务器在使用端口 2638,而这时又在未指定 PORT 协议选项的情况下启动另一个网络数据库服务器,则第二个网络服务器将无法启动。原因是用户需要知道并在其连接参数中指定服务器的端口号。即使端口 2638 正在使用,个人服务器也可成功启动,因为通常使用共享内存来连接个人服务器。

另请参见
示例

以下示例显示如何使用 PORT 协议选项来指定服务器的启动端口。

  1. 启动网络数据库服务器:

    dbsrv11 -x tcpip -n server1

    现在采用端口号 2638。

  2. 尝试启动另一台数据库服务器:

    dbsrv11 -x tcpip -n server2

    缺省端口当前已分配,因此服务器会在另一个端口上启动。在 Mac OS X 上,此操作将失败。

  3. 如果计算机上的另一个 Web 服务器已在使用端口 80,或者您没有权限在此低端口号上启动服务器,您可能希望启动服务器监听替代端口,例如 8080:

    dbsrv11 -xs http(port=8080) -n server3 web.db