
# 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)"。
     ![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
     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]所示：
   图1ODBC Driver Setup   
   ![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/figure/zh-cn_image_0000002620720257.png "点击放大")
   参数说明请参见[表1](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0317.html#ZH-CN_TOPIC_0000002590360182__zh-cn_topic_0283136654_zh-cn_topic_0237120407_zh-cn_topic_0059778464_t55845a6555f2454297b64ce47ad3d648)。
   其中单击Datasource可以选择配置是否打印日志，单击后弹出对话框如下[图2]所示：
   图2Advanced Options Page1   
   ![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/figure/zh-cn_image_0000002590200736.png)
   ![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
   此界面上配置的用户名及密码信息，将会被记录在Windows注册表中，再次连接数据库时不再需要输入认证信息。但是出于安全考虑，建议在单击"Save"按钮保存配置信息前，清空相关敏感信息，在使用ODBC的连接API时，再传入所需的用户名、密码信息。
   
   
4. SSL模式。 
   如需使用SSL模式请将[3]中设置窗口的"SSL Mode"选项调整至"require"。
   Sslmode的可选及其描述请参见[表2](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0317.html#ZH-CN_TOPIC_0000002590360182__zh-cn_topic_0283136654_zh-cn_topic_0237120407_zh-cn_topic_0059778464_table22136585143846)。
   
   
5. 测试连接。 
   单击Test进行测试。
   - 若显示信息如下，则表明配置正确，连接成功。
     图3配置成功   
     ![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/figure/zh-cn_image_0000002590200738.png "点击放大") 
   
   - 若显示ERROR信息，则表明配置错误。请重新检查上述配置是否正确。
   
   
   ![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
   目前通过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配置正确，请根据[操作步骤](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0135.html#ZH-CN_TOPIC_0000002620639761__section1447319379228)中数据库服务器的相关配置，确保数据库侦听了合适的网卡及端口。
    
  
  - 防火墙及网闸设备。 请确认防火墙设置，将数据库的通信端口添加到可信端口中。
    如果有网闸设备，请确认相关的设置。
    
   
- The password-stored method is not supported. 此问题的可能原因：
  数据源中未配置Sslmode配置项，请调整此项至allow或以上级别，允许SSL连接，此选项的更多说明，请参见[表2](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0317.html#ZH-CN_TOPIC_0000002590360182__zh-cn_topic_0283136654_zh-cn_topic_0237120407_zh-cn_topic_0059778464_table22136585143846)。
  
- authentication method 10 not supported. 使用开源客户端时出现此错误。可能原因：
  数据库中用户密码仅以SHA256哈希值的形式存储，而不存储明文密码。
  早期版本为了兼容某些开源客户端，同时存储了MD5哈希值和SHA256哈希值两种格式。 当用户登录时，服务端会优先尝试使用客户端发送的校验方式（MD5或SHA256）进行验证对应的哈希值。
  在从旧版本数据库升级到新版本时，由于哈希算法的单向不可逆特性，系统无法从已有的SHA256哈希值逆推出原始明文密码，也就无法再生成对应的MD5哈希值。因此升级完成后，数据库中只保留了SHA256哈希值，导致使用MD5校验方式的开源客户端认证失败，报此错误。
  数据库中的密码校验仅存储了SHA256格式哈希值，而开源客户端仅识别MD5校验，双方校验方法不匹配报错。
  ![](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  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"后重试。
  
 
