
# 配置参数说明
本章节对odbc.ini文件配置参数进行详细说明，参见[表1]：
 表1odbc.ini文件配置参数 
| **参数**                                                                                                                                             | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | **示例**                                                                                                                                                  |
|:---|:---|:---|
| \[DSN\]                                                                                                                                            | 数据源的名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | \[gaussdb\]                                                                                                                                             |
| Driver                                                                                                                                             | 驱动名，对应odbcinst.ini中的DriverName。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Driver=GaussMPP                                                                                                                                         |
| Servername                                                                                                                                         | - 服务器的IP地址。可配置多个IP地址。支持IPv4和IPv6。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Servername=127.0.0.1                                                                                                                                    |
| Database                                                                                                                                           | 要连接的数据库的名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Database=db1                                                                                                                                            |
| Username                                                                                                                                           | 数据库用户名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Username=omm                                                                                                                                            |
| Password                                                                                                                                           | 数据库用户密码。 说明： ODBC驱动本身已经对内存密码进行过清理，以保证用户密码在连接后不会再在内存中保留。 但是如果配置了此参数，由于UnixODBC对数据源文件等进行缓存，可能导致密码长期保留在内存中。 推荐在应用程序连接时，将密码传递给相应API，而非写在数据源配置文件中。同时连接成功后，应当及时清理保存密码的内存段。 须知： 配置文件中填写密码时，需要遵循http规则： 1. 字符应当采用URL编码规范，如"!"应写作"%21"，"%"应写作"%25"，因此应当特别注意字符。  2. "+"会被替换为空格" "。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Password=\*\*\*\*\*\*\*\*                                                                                                                               |
| Port  | 服务器的端口号。当开启负载均衡时，可配置多个端口号，且需与配置的多IP一一对应。如果开启负载均衡配置多个IP时，仍只配置一个端口号，则默认所有IP共用同一个端口号，即为配置的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Port=8000  |
| Sslmode                                                                                                                                            | 是否启用SSL连接。 说明： Sslmode的可用选项及其说明，请参见[表2]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Sslmode=allow                                                                                                                                           |
| Debug                                                                                                                                              | 控制调试模式的开启及日志输出级别。 取值范围：0 \~ INT_MAX - 设置为0时表示不启用调试模式。  - 设置为大于0的值时将启用调试日志，会打印gsqlODBC驱动的mylog。日志生成目录为/tmp/，文件名为mylog_xxx.log。  - 设置为1时表示仅输出FATAL级别日志。  - 设置为2时表示输出FATAL和ERROR级别日志。  - 设置为3时表示输出FATAL、ERROR和WARN级别日志。  - 设置为4时表示输出FATAL、ERROR、WARN和INFO级别日志。  - 设置为≥5时表示输出所有级别日志，增加输出TRACE级别日志。   默认值为0。 说明： 1. FATAL：报告致命错误。  2. ERROR：报告异常错误。  3. WARN：报告警告信息。  4. INFO：记录程序运行中的正常关键信息。  5. TRACE：提供开发人员使用的调试信息。   | Debug=5                                                                                                                                                 |
| CommLog                                                                                                                                            | 控制后端通信日志的开启及日志输出级别。 取值范围：0 \~ INT_MAX - 设置为0时表示不启用。  - 设置为大于0的值时将启用后端日志，会打印gsqlODBC驱动的qlog。日志生成目录为/tmp/，文件名为gsqlodbc_xxx.log。  - 设置为1时表示仅输出ERROR级别日志。  - 设置为2时表示输出ERROR和INFO级别日志。  - 设置为≥3时表示输出ERROR、INFO和TRACE级别日志。   默认值为0。 说明： 1. ERROR：报告异常错误。  2. INFO：记录程序运行中的正常关键信息。  3. TRACE：提供开发人员使用的调试信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | CommLog=1                                                                                                                                               |
| UseServerSidePrepare                                                                                                                               | 是否开启数据库端扩展查询协议。 取值范围：0，1 - 取值为0表示不开启。  - 取值为1表示开启。   默认值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | UseServerSidePrepare=1                                                                                                                                  |
| UseBatchProtocol                                                                                                                                   | 是否开启批量查询协议（开启后可提升DML操作性能）。 取值范围：0，1 - 取值为0时，不使用批量查询协议（主要用于与早期数据库版本通信兼容）。  - 取值为1，且GUC参数support_batch_bind设置为on时，将打开批量查询协议。   默认值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | UseBatchProtocol=1                                                                                                                                      |
| ForExtensionConnector                                                                                                                              | 此开关控制着savepoint是否发送，savepoint相关问题可以注意此开关。 取值范围：0，1 - 取值为0时表示发送savepoint。  - 取值为1时表示不发送savepoint。   默认值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | ForExtensionConnector=1                                                                                                                                 |
| ConnectionExtraInfo                                                                                                                                | GUC参数connection_info中显示驱动部署路径和进程属主用户的开关。 取值范围：0，1 - 取值为0时表示不打开此开关。  - 取值为1时表示打开此开关。   默认值为0。 说明： 当设置为1时，ODBC驱动会将当前驱动的部署路径、进程属主用户上报到数据库中，记录在GUC参数connection_info里，同时可以在《参考》中"系统表和系统视图 \> 系统视图 \> 其他系统视图 \> PG_STAT_ACTIVITY"和"PGXC_STAT_ACTIVITY"中查询到。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | ConnectionExtraInfo=1                                                                                                                                   |
| BoolsAsChar                                                                                                                                        | 是否将布尔值作为字符处理。 取值范围：0，1 - 取值为0时表示Bools值将会映射为SQL_BIT。  - 取值为1时表示Bools值将会映射为SQL_CHAR。   默认值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | BoolsAsChar = 1                                                                                                                                         |
| RowVersioning                                                                                                                                      | 是否在更新一行数据时，允许应用检测数据有没有被其他用户进行修改。 取值范围：0，1 - 取值为0时表示不允许应用检测。  - 取值为1时表示允许应用检测。   默认值为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | RowVersioning=1                                                                                                                                         |
| ShowSystemTables                                                                                                                                   | 指定是否将默认系统表视为普通SQL表。 取值范围：0，1 - 取值为0时驱动不会将默认系统表视为普通SQL表。  - 取值为1时驱动将默认系统表视为普通SQL表。   默认值为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | ShowSystemTables=1                                                                                                                                      |
| AutoBalance                                                                                                                                        | 用于开启ODBC连接的负载均衡。 取值范围：0，1 - 取值为0时表示不开启负载均衡。  - 取值为1时开启负载均衡。   默认值为0。 说明： - 当连接的数据库版本低于505.2.0.SPC0200时，容灾集群不支持负载均衡。  - 仅支持单个\[DSN\]配置开启负载均衡。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | AutoBalance=1                                                                                                                                           |
| RefreshCNListTime                                                                                                                                  | 开启负载均衡时可配置该参数，该参数用于设置刷新CN列表的时间。整数型，单位为秒。 取值范围：0 \~ INT_MAX - 取值为0时表示不开启该参数。  - 取值大于0时表示该设定值为刷新CN列表的时间。   默认值为10。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | RefreshCNListTime=5                                                                                                                                     |
| Priority                                                                                                                                           | 开启负载均衡时可配置该参数。 取值范围：0，1 - 取值为0时表示不开启该参数。  - 取值为1时开启该参数。   默认值为0。 说明： 当Priority开启时，应用程序发起的所有连接优先发送到配置文件中配置的CN上，当配置的CN全部不可用时，连接才会发送到剩余的CN上。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Priority=1                                                                                                                                              |
| UsingEip                                                                                                                                           | 开启负载均衡时可配置该参数。 取值范围：0，1 - 取值为0时表示不开启该参数。  - 取值为1时开启该参数。   默认值为0。 说明： 此值用于控制是否使用业务IP（对应pgxc_node表中node_host1和node_port1列）实现负载均衡。当UsingEip开启时，表示使用业务IP实现负载均衡；关闭表示使用数据IP（对应pgxc_node表中node_host和node_port列）实现负载均衡。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | UsingEip=1                                                                                                                                              |
| MaxCacheQueries                                                                                                                                    | 控制每个连接缓存的预编译语句个数。 取值范围：0 \~ 4096 默认值为0。 说明： 如果设置为0，则不开启客户端预编译语句缓存池。设置为大于4096的值会限制为4096。如果执行过的语句个数超过MaxCacheQueries设置的上限，则淘汰最近最少使用的语句。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | MaxCacheQueries=128                                                                                                                                     |
| MaxCacheSizeMiB                                                                                                                                    | 控制每个连接缓存的预编译语句总大小，在MaxCacheQueries大于0时生效。 取值范围：0 \~ 4096 默认值为1。 说明： 如果缓存的语句总长度大于MaxCacheSizeMiB则淘汰最近最少使用的语句。单位为MB，设置为大于4096的值会限制为4096。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | MaxCacheSizeMiB=10                                                                                                                                      |
| TcpUserTimeout                                                                                                                                     | 在支持TCP_USER_TIMEOUT套接字选项的操作系统上，指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。 取值范围：0 \~ INT_MAX 默认值为0。 说明： 0表示使用系统缺省。通过Unix域套接字做的连接忽略这个参数。单位为毫秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | TcpUserTimeout=5000                                                                                                                                     |
| StandbyRead                                                                                                                                        | 用于指定分布式是否开启备机读模式。 取值范围：0，1 - 取值为0时表示禁用备机读模式。  - 取值为1时表示开启备机读模式。   默认值为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | StandbyRead=1                                                                                                                                           |
| Pqopt                                                                                                                                              | 用于设置libpq连接参数，参数之间用空格间隔。libpq参数请参见[连接参数说明](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0319.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Pqopt=keepalives=0                                                                                                                                      |
| KeepaliveTime                                                                                                                                      | 在TCP应该发送一个保持激活的信息给服务器之后，控制不活动的秒数。如果是通过Unix域套接字进行连接，或者禁用了"保持激活"功能，则该参数将被忽略。 取值范围：0 \~ INT_MAX 设置为0值或者不配置表示使用系统缺省。 说明： 禁用"保持激活"功能需要通过Pqopt参数设置keepalives=0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | KeepaliveTime=2                                                                                                                                         |
| KeepaliveInterval                                                                                                                                  | 在TCP保持激活信息没有被应该传播的服务器承认之后，控制探活报文发送的间隔秒数。如果是通过 Unix 域套接字进行连接，或者禁用了"保持激活"功能，则该参数将被忽略。 取值范围：0 \~ INT_MAX 设置为0值或者不配置表示使用系统缺省。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | KeepaliveInterval=2                                                                                                                                     |
| KeepaliveCount                                                                                                                                     | 控制TCP发送保持激活信息的次数。如果是通过 Unix 域套接字进行连接，或者禁用了"保持激活"功能，则该参数将被忽略。 取值范围：0 \~ INT_MAX 设置为0值或者不配置表示使用系统缺省。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | KeepaliveCount=2                                                                                                                                        |
| SocketTimeout                                                                                                                                      | 用于控制客户端与服务端建立连接完全成功后的socket读写超时时间。单位为秒，默认为0。 说明： 该参数包含数据库语句执行的超时时间。设置过小可能导致正常执行超时，因此默认为0，建议根据实际场景配置非0值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | SocketTimeout=5                                                                                                                                         |
| SocketTimeoutInConnect                                                                                                                             | 用于控制TCP三次握手成功后，客户端与服务端建立连接阶段的socket读写超时时间。单位为秒，默认为5。 说明： 该参数与SocketTimeout的区别在于：由于三次握手成功后的客户端与服务端建立连接阶段可能存在阻塞，因此需要设置不影响语句执行超时的socket读写超时时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | SocketTimeoutInConnect=5                                                                                                                                |
| CancelTimeout                                                                                                                                      | 用于控制应用端发送cancel消息的超时时间。 单位为秒，默认值为0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | CancelTimeout=5                                                                                                                                         |
| TcpSYNRetries                                                                                                                                      | 用于控制在TCP三次握手阶段时SYN的最大重传次数。超过该次数仍未建立连接，则会返回报错。 默认值为0。 说明： 该参数在支持TCP_SYNCNT套接字选项的操作系统上，指定客户端建立连接三次握手阶段SYN包发送失败而重传的次数。0值表示使用系统缺省。通过Unix域套接字的连接忽略这个参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | TcpSYNRetries=3                                                                                                                                         |
| TextAsLongVarchar                                                                                                                                  | 将数据库内核中的text类型映射为驱动侧的SQL_LONGVARCHAR类型或者SQL_VARCHAR类型。 取值范围：0，1。 - 取值为0时表示将内核侧text类型映射为驱动侧的SQL_VARCHAR类型。  - 取值为1时表示将内核侧text类型映射为驱动侧的SQL_LONGVARCHAR类型。   默认值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | TextAsLongVarchar=1                                                                                                                                     |
| MaxLongVarcharSize                                                                                                                                 | 定义驱动侧的SQL_LONGVARCHAR类型的可支持最大长度。 取值范围：0 \~ INT_MAX。 默认值为8190。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | MaxLongVarcharSize=8190                                                                                                                                 |
| MaxVarcharSize                                                                                                                                     | 定义驱动侧的SQL_VARCHAR类型的可支持最大长度。 取值范围：0 \~ INT_MAX。 默认值为255。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | MaxVarcharSize=255                                                                                                                                      |
| TargetServerType                                                                                                                                   | 设定连接的主机类型。主机的类型和设定的值一致时才能成功建立连接。设置规则如下： - primary（默认值）：仅对集群中的CN进行连接。  - cluster-primary：仅支持对主集群CN节点进行连接。  - cluster-mainnode：仅支持对容灾集群CN节点进行连接。 说明： cluster-primary和cluster-mainnode选项只支持流式容灾。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | TargetServerType=cluster-primary                                                                                                                        |
| EnableHostCache                                                                                                                                    | 是否开启节点缓存功能。 - 0表示不开启。  - 1表示开启。   默认值为1。 说明： 节点缓存在连接串配置单IP时不生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | EnableHostCache=1                                                                                                                                       |
   
 表2Sslmode的可选项及其描述 
| Sslmode     | 是否会启用SSL加密 | 描述                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| disable     | 否          | 不使用SSL安全连接，为默认值。                                                                                                                                                                                                                                                      |
| allow       | 可能         | 如果数据库服务器要求使用，则可以使用SSL安全加密连接，但不验证数据库服务器的真实性。                                                                                                                                                                                                                           |
| prefer      | 可能         | 如果数据库支持SSL，则优先使用SSL安全加密连接，但不验证数据库服务器的真实性。                                                                                                                                                                                                                             |
| require     | 是          | 必须使用SSL安全连接，仅进行数据加密，不验证数据库服务器的真实性。                                                                                                                                                                                                                                    |
| verify-ca   | 是          | 必须使用SSL安全连接，并且验证数据库是否具有可信证书机构签发的证书。 当前Windows ODBC不支持cert方式认证。                                                                                                                                                          |
| verify-full | 是          | 必须使用SSL安全连接，在verify-ca的验证范围之外，同时验证数据库所在主机的主机名是否与证书内容一致。 GaussDB不支持此模式。 当前Windows ODBC不支持cert方式认证。 |
   
![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
用户通过ODBC连接GaussDB服务器时，可以通过开启SSL加密客户端和服务器之间的通讯。在使用SSL时，默认用户已经获取了服务端和客户端所需要的证书和私钥文件，关于证书等文件的获取请参考Openssl相关文档和命令。
