Skip to content
运维指南/数据源与连接问题/数据源与连接问题 - 排查与解决手册

数据源与连接问题 - 排查与解决手册


1.MySQL连接问题

1. MySQL 连接失败:Public Key Retrieval is not allowed

现象:测试连接时报“Public Key Retrieval is not allowed”。

解决步骤

  1. 在 JDBC URL 末尾添加参数
    ?allowPublicKeyRetrieval=true&useSSL=false
    例如:jdbc:mysql://127.0.0.1:3306/test?allowPublicKeyRetrieval=true&useSSL=false

  2. 保存后重新测试连接


2. MySQL 连接成功但选不到 schema

现象:数据源测试连接成功,但在数据开发中选不到任何表或库。

解决步骤

  1. 检查数据库用户权限
    确认该用户是否有 SHOW DATABASES 和对应库的 SELECT 权限。

  2. 更换驱动版本
    若使用 MySQL 8.0+,请使用 mysql-connector-java 8.0.28 或更高版本;若为 MySQL 5.x,使用 5.1.49

  3. 在 JDBC URL 中指定数据库名
    例如 jdbc:mysql://127.0.0.1:3306/数据库名,然后测试连接,再重新打开选表界面。


3. MySQL 时间字段偏差 / 中文乱码

现象:同步后时间字段与源库不一致,或中文乱码。

解决步骤

  1. 在 JDBC URL 中添加时区和编码参数
    ?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8

  2. 若为零日期问题,再添加:
    zeroDateTimeBehavior=CONVERT_TO_NULL

  3. 保存并重新测试连接


2.Oracle连接问题

1. Oracle 连接失败:ORA-12514

现象:测试连接时报“ORA-12514: TNS:listener does not currently know of service requested”。

解决步骤

  1. 确认数据库服务名
    在数据库服务器上执行:lsnrctl services 查看服务名,通常为 orcl 或实例名。

  2. 修改 JDBC URL 中的服务名
    格式:jdbc:oracle:thin:@//ip:1521/服务名(注意是斜杠不是冒号)。

  3. 若使用 SID,格式为:jdbc:oracle:thin:@ip:1521:SID

  4. 测试连通性telnet ip 1521 确保端口开放。


2. Oracle 连接失败:ORA-00942 表不存在

现象:测试连接成功,但执行 SQL 时报表或视图不存在。

解决步骤

  1. 确认表名大小写
    Oracle 默认表名大写,若建表时用了双引号小写,查询时必须加双引号。建议在 SQL 中使用大写表名。

  2. 检查用户权限
    使用数据库客户端以相同用户登录,执行 select * from 表名 看是否正常。

  3. 若使用同义词,确保同义词指向的表存在且有权访问。


3. Oracle 连接测试语句错误:ORA-00923

现象:注册调度引擎时测试连接报“ORA-00923: FROM keyword not found where expected”。

解决步骤

  1. 修改连接测试查询语句
    Oracle 必须使用 select 1 from dual,而非 select 1

  2. 在调度引擎配置中,将“连接测试查询”字段改为
    select 1 from dual

  3. 保存并重新测试连接


3.达梦数据库连接问题

1. 达梦数据库连接失败:params database name error

现象:测试连接时报“params database name error:xxx”。

解决步骤

  1. 查询正确的数据库名称
    用达梦客户端连接后执行:select name from v$database;

  2. 在数据源配置中填写查询到的名称(不是随便填的库名)。

  3. 若仍报错,使用自定义 URL 方式,在 URL 中直接指定库名,例如:jdbc:dm://ip:5236/数据库名


2. 达梦数据库连接成功,但执行作业时报“模式不属于当前用户”

现象:预览数据正常,但作业运行时提示“模式[schema]不属于当前用户”。

解决步骤

  1. 在数据源配置中,不要填写“模式”字段,留空。

  2. 改用自定义 URL,在 URL 中指定模式(如果需要):
    jdbc:dm://ip:5236/数据库名?schema=模式名

  3. 确保作业中 SQL 语句使用“用户名.表名”的格式,例如 SELECT * FROM 用户名.表名


4. SQL Server 连接问题

1.SQL Server2008 R2数据库,使用关系型数据库输入组件预览数据正常,DI运行报错

现象:DI运行报错:Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.关系型数据库输入.0 - at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:237)

解决步骤

公共资源管理-数据源管理:修改数据源参数,增加 encrypt=false。然后在项目配置—数据源配置刷新对应数据源。


2.SQL Server 2012及以上版本,使用关系型数据库输入组件预览数据正常,DI运行报错

现象:DI运行报错:The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target". ClientConnectionId:b81c3d35-24c7-4636-8c92-bc699218ac5b

解决步骤

公共资源管理-数据源管理:修改数据源参数,增加 trustServerCertificate=true。然后在项目配置—数据源配置刷新对应数据源。

3.DWS连接sqlserver,进行联通测试,报:The server selected protocol version TLS10 is not accepted by client preferences [TLS12]

解决步骤

修改jdk或jre中java.security文件。示例如下:

1、找到java.security文件

该文件一般在 /opt/java/openjre/conf/security/ 中,如下图所示:

2、通过 vi 或 vim 命令编辑文件
cd /opt/java/openjre/conf/security/
vi java.security
3、进入编辑模式后,通过 / jdk.tls.disabled 搜索到准确的行,按下i,开启编辑,去掉其中的 TLSv1,重启 AFC 服务。
修改前的文件:

修改后的文件:


5. WebSocket 连接异常(SQL 客户端)

现象:点击 SQL 客户端查看表数据时,浏览器报 WebSocket 连接 404。

解决步骤

  1. 修改 Nginx 配置,在对应 location 中添加:

    nginx
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  2. 重启 Nginxnginx -s reload

  3. 清除浏览器缓存,重新登录后重试。


6.Hive连接问题

1. Hive 连接失败:缺少配置文件

现象:连接 Hive 数据源时,提示需要上传 core-site.xml、hdfs-site.xml、hive-site.xml。

解决步骤

  1. 从大数据集群获取这三个文件(通常在 Hadoop 客户端 /etc/hadoop/conf 和 Hive 的 conf 目录)。

  2. 在 DWS 公共资源-文件管理中上传这三个文件

  3. 在数据源配置中,选择上传的文件(每个文件对应选择)。

  4. 确保 DI server 和 Dolphin worker 节点的 /etc/hosts 配置了 Hadoop 集群的主机名解析


2. Hive 连接成功,但写数据时报权限不足

现象:作业执行时报 Permission denied: user=dws

解决步骤

  1. 在 DI server 或 SeaTunnel 启动脚本中设置 HADOOP_USER_NAME
    例如在 diserver/bin/startup.shseatunnel/bin/seatunnel-cluster.sh 中添加:

    bash
    export HADOOP_USER_NAME=hdfs  # 或实际有写权限的用户
  2. 重启对应服务

  3. 确认目标 HDFS 目录权限,确保该用户有写权限。


7. 连接数超限:too many connections

现象:测试连接或执行作业时报“too many connections”。

解决步骤

  1. 临时调大数据库最大连接数
    MySQL:SET GLOBAL max_connections = 500;
    达梦:修改 dm.iniMAX_SESSIONS 参数后重启。

  2. 永久修改:在数据库配置文件(如 my.cnf)中增加 max_connections = 500,重启数据库。


快速定位表

异常现象章节
Public Key Retrieval is not allowed1
MySQL 选不到 schema1
MySQL 时间/乱码1
ORA-125142
ORA-009422
ORA-009232
达梦 database name error3
达梦模式不属于当前用户3
SQL Server 连接4
WebSocket 4045
Hive 缺少配置文件6
Hive 权限不足6
too many connections7

:所有数据库操作前请备份重要数据。补丁请从 AME+ 平台申请。