
# 配置参数说明
本章节对odbc.ini文件配置参数进行详细说明，参见[表1]：
 表1odbc.ini文件配置参数 
| **参数**                                                                                                                                                   | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | **示例**                                                                                                                                                                |
|:---|:---|:---|
| \[DSN\]                                                                                                                                                  | 数据源的名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | \[gaussdb\]                                                                                                                                                           |
| Driver                                                                                                                                                   | 驱动名，对应odbcinst.ini中的DriverName。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Driver=GaussMPP                                                                                                                                                       |
| Servername  | - 服务器的IP地址。可配置多个IP地址或者多个域名。支持IPv4和IPv6。 说明： 如果使用域名可以配置Pqopt=enable_host_resolve=1打开域名解析，支持域名自动寻主。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Servername=127.0.0.1  |
| Database                                                                                                                                                 | 要连接的数据库的名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Database=db1                                                                                                                                                          |
| Username                                                                                                                                                 | 数据库用户名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Username=omm                                                                                                                                                          |
| Password                                                                                                                                                 | 数据库用户密码。 说明： ODBC驱动本身已经对内存密码进行过清理，以保证用户密码在连接后不会再在内存中保留。 但是如果配置了此参数，由于UnixODBC对数据源文件等进行缓存，可能导致密码长期保留在内存中。 推荐在应用程序连接时，将密码传递给相应API，而非写在数据源配置文件中。同时连接成功后，应当及时清理保存密码的内存段。 须知： 配置文件中填写密码时，需要遵循http规则： 1. 字符应当采用URL编码规范，如"!"应写作"%21"，"%"应写作"%25"，因此应当特别注意字符。  2. "+"会被替换为空格" "。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Password=\*\*\*\*\*\*\*\*                                                                                                                                             |
| Port        | 服务器的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | 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"中查询到。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 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                                                                                                                                                    |
| 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                                                                                                                                                   |
| TargetServerType                                                                                                                                         | 设定连接的主机的类型。主机的类型和设定的值一致时才能连接成功。设置规则如下： - primary（默认值）：仅对主备系统中的主节点进行连接。  - standby：仅对主备系统中的备节点进行连接。  - prefer-standby：首先尝试与主备系统中的备节点进行连接。如果与hosts列表的所有备节点都连接失败，则尝试any模式进行连接。  - read-write：仅对可读写的主机进行连接。  - read-only：仅对只读的主机进行连接。  - any：可以对所有类型的主机进行连接。  - cluster-primary：仅支持对主数据库主节点进行连接。  - cluster-standby：仅支持对主数据库备节点进行连接。  - cluster-mainnode：仅支持对主节点或首备节点（容灾主节点）进行连接。 说明： cluster-primary、cluster-standby和cluster-mainnode选项仅支持流式容灾。                                                                                                                                                                                                                                                                                                                                                             | TargetServerType=primary                                                                                                                                              |
| Pqopt                                                                                                                                                    | 用于设置libpq连接参数，参数之间用空格间隔。libpq参数请参见[连接参数说明](https://support.huaweicloud.com/centralized-devg-v10-gaussdb/gaussdb-42-0374.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                                                                                                                                                    |
| EnableHostCache                                                                                                                                          | 是否开启节点缓存功能，0表示不开启，1表示开启。默认开启。 说明： 节点缓存在连接串配置单IP或者TargetServerType=any时不生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 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/centralized-devg-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
用户通过ODBC连接GaussDB服务器时，可以通过开启SSL加密客户端和服务器之间的通讯。在使用SSL时，默认用户已经获取了服务端和客户端所需要的证书和私钥文件，关于证书等文件的获取请参考Openssl相关文档和命令。
