更新时间:2026-07-28 GMT+08:00
分享

Windows系统下配置数据源

Windows操作系统自带ODBC数据源管理器,无需用户手动安装管理器即可直接进行配置。

操作步骤

  1. 替换客户端GaussDB驱动程序。

    根据需要,将包名为GaussDB-Kernel_数据库版本号_Windows_X64_Odbc.tar.gz的64位驱动或包名为GaussDB-Kernel_数据库版本号_Windows_X86_Odbc.tar.gz的32位驱动解压后,单击gsqlodbc.exe进行驱动安装。

  2. 打开驱动管理器。

    请使用ODBC版本对应的ODBC驱动管理器(如果使用64位ODBC驱动,必须使用64位的ODBC驱动管理器。假设操作系统安装盘符为C盘,如果是其他盘符,请对路径做相应修改)。

    • 如果需要在64位操作系统使用32位ODBC驱动请使用:C:\Windows\SysWOW64\odbcad32.exe,请勿直接使用“控制面板 > 管理工具 > 数据源(ODBC)”。

      WOW64的全称是“Windows 32-bit on Windows 64-bit”,C:\Windows\SysWOW64\存放的是64位系统上的32位运行环境。而C:\Windows\System32\存放的是与操作系统一致的运行环境,具体的技术信息请查阅Windows的相关技术文档。

    • 32位操作系统请使用:C:\Windows\System32\odbcad32.exe,或者单击“计算机 > 控制面板 > 管理工具 > 数据源(ODBC)”打开驱动管理器。
    • 64位操作系统请使用:控制面板 > 管理工具 > 数据源(ODBC) 打开驱动管理。

  3. 配置数据源。

    在打开的驱动管理器上,选择“用户DSN > 添加 > GaussDB Unicode”,然后进行配置。如下图1所示:

    图1 ODBC Driver Setup

    参数说明请参见表1

    其中单击Datasource可以选择配置是否打印日志,单击后弹出对话框如下图2所示:

    图2 Advanced Options Page1

    此界面上配置的用户名及密码信息,将会被记录在Windows注册表中,再次连接数据库时不再需要输入认证信息。但是出于安全考虑,建议在单击“Save”按钮保存配置信息前,清空相关敏感信息,在使用ODBC的连接API时,再传入所需的用户名、密码信息。

  4. SSL模式。

    如需使用SSL模式请将3中设置窗口的“SSL Mode”选项调整至“require”。

    Sslmode的可选及其描述请参见表2

  5. 测试连接。

    单击Test进行测试。

    • 若显示信息如下,则表明配置正确,连接成功。
      图3 配置成功
    • 若显示ERROR信息,则表明配置错误。请重新检查上述配置是否正确。
    目前通过ODBC连接数据库时,会设置如下参数:
    SET extra_float_digits = 2;
    SET DateStyle = 'ISO';

    这些参数可能会导致ODBC客户端的行为与gsql客户端的行为不一致,例如,Date数据显示方式、浮点数精度表示。如果实际期望和这些配置不符,建议在ODBC应用代码中显式设定这些参数。

    M-Compatibility模式数据库下,extra_float_digits的默认值为0。

常见问题处理

  • connect to server failed: no such file or directory

    此问题的可能原因:

    • 配置了错误的/不可达的数据库地址或者端口。

      请检查数据源配置中的Server及Port配置项。

    • 服务器侦听不正确。

      如果确认Server及Port配置正确,请根据操作步骤中数据库服务器的相关配置,确保数据库侦听了合适的网卡及端口。

    • 防火墙及网闸设备。

      请确认防火墙设置,将数据库的通信端口添加到可信端口中。

      如果有网闸设备,请确认相关的设置。

  • The password-stored method is not supported.

    此问题的可能原因:

    数据源中未配置Sslmode配置项,请调整此项至allow或以上级别,允许SSL连接,此选项的更多说明,请参见表2

  • authentication method 10 not supported.

    使用开源客户端时出现此错误。可能原因:

    数据库中用户密码仅以SHA256哈希值的形式存储,而不存储明文密码。

    早期版本为了兼容某些开源客户端,同时存储了MD5哈希值和SHA256哈希值两种格式。 当用户登录时,服务端会优先尝试使用客户端发送的校验方式(MD5或SHA256)进行验证对应的哈希值。

    在从旧版本数据库升级到新版本时,由于哈希算法的单向不可逆特性,系统无法从已有的SHA256哈希值逆推出原始明文密码,也就无法再生成对应的MD5哈希值。因此升级完成后,数据库中只保留了SHA256哈希值,导致使用MD5校验方式的开源客户端认证失败,报此错误。

    数据库中的密码校验仅存储了SHA256格式哈希值,而开源客户端仅识别MD5校验,双方校验方法不匹配报错。

    MD5算法已被证明存在严重的安全缺陷,不再推荐使用。 建议所有客户端逐步升级到支持SHA256或更强哈希算法的版本,以彻底消除兼容性与安全隐患。

    该问题的解决方案包括:

    • 更新用户密码(请参见《参考》中“SQL参考 > SQL语法 > A > ALTER USER”)。
    • 新建新用户并赋予和原用户同等的权限(请参见《参考》中“SQL参考 > SQL语法 > C > CREATE USER”),使用新用户连接数据库。
  • unsupported frontend protocol 3.51: server supports 1.0 to 3.0

    此问题的可能原因:

    目标数据库版本过低,或者目标数据库为开源数据库。

    请使用与目标数据库版本匹配的数据库驱动连接目标数据库。

  • FATAL: GSS authentication method is not allowed because XXXX user password is not disabled.

    目标CN的gs_hba.conf文件中,配置了当前客户端IP使用“gss”方式来做认证。该认证算法不支持客户端身份认证。请修改配置为“sha256”后重试。

相关文档