⌘CtrlK
Appearance
Appearance
Public Key Retrieval is not allowed 现象:测试连接时报“Public Key Retrieval is not allowed”。
解决步骤:
在 JDBC URL 末尾添加参数?allowPublicKeyRetrieval=true&useSSL=false
例如:jdbc:mysql://127.0.0.1:3306/test?allowPublicKeyRetrieval=true&useSSL=false
保存后重新测试连接
现象:数据源测试连接成功,但在数据开发中选不到任何表或库。
解决步骤:
检查数据库用户权限
确认该用户是否有 SHOW DATABASES 和对应库的 SELECT 权限。
更换驱动版本
若使用 MySQL 8.0+,请使用 mysql-connector-java 8.0.28 或更高版本;若为 MySQL 5.x,使用 5.1.49。
在 JDBC URL 中指定数据库名
例如 jdbc:mysql://127.0.0.1:3306/数据库名,然后测试连接,再重新打开选表界面。
现象:同步后时间字段与源库不一致,或中文乱码。
解决步骤:
在 JDBC URL 中添加时区和编码参数?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8
若为零日期问题,再添加:zeroDateTimeBehavior=CONVERT_TO_NULL
保存并重新测试连接
ORA-12514 现象:测试连接时报“ORA-12514: TNS:listener does not currently know of service requested”。
解决步骤:
确认数据库服务名
在数据库服务器上执行:lsnrctl services 查看服务名,通常为 orcl 或实例名。
修改 JDBC URL 中的服务名
格式:jdbc:oracle:thin:@//ip:1521/服务名(注意是斜杠不是冒号)。
若使用 SID,格式为:jdbc:oracle:thin:@ip:1521:SID
测试连通性:telnet ip 1521 确保端口开放。
ORA-00942 表不存在 现象:测试连接成功,但执行 SQL 时报表或视图不存在。
解决步骤:
确认表名大小写
Oracle 默认表名大写,若建表时用了双引号小写,查询时必须加双引号。建议在 SQL 中使用大写表名。
检查用户权限
使用数据库客户端以相同用户登录,执行 select * from 表名 看是否正常。
若使用同义词,确保同义词指向的表存在且有权访问。
ORA-00923 现象:注册调度引擎时测试连接报“ORA-00923: FROM keyword not found where expected”。
解决步骤:
修改连接测试查询语句
Oracle 必须使用 select 1 from dual,而非 select 1。
在调度引擎配置中,将“连接测试查询”字段改为:select 1 from dual
保存并重新测试连接
params database name error 现象:测试连接时报“params database name error:xxx”。
解决步骤:
查询正确的数据库名称
用达梦客户端连接后执行:select name from v$database;
在数据源配置中填写查询到的名称(不是随便填的库名)。
若仍报错,使用自定义 URL 方式,在 URL 中直接指定库名,例如:jdbc:dm://ip:5236/数据库名
现象:预览数据正常,但作业运行时提示“模式[schema]不属于当前用户”。
解决步骤:
在数据源配置中,不要填写“模式”字段,留空。
改用自定义 URL,在 URL 中指定模式(如果需要):jdbc:dm://ip:5236/数据库名?schema=模式名
确保作业中 SQL 语句使用“用户名.表名”的格式,例如 SELECT * FROM 用户名.表名
现象: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。然后在项目配置—数据源配置刷新对应数据源。 
现象: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。然后在项目配置—数据源配置刷新对应数据源。

解决步骤:
修改jdk或jre中java.security文件。示例如下:
1、找到java.security文件
该文件一般在 /opt/java/openjre/conf/security/ 中,如下图所示:
2、通过 vi 或 vim 命令编辑文件
cd /opt/java/openjre/conf/security/
vi java.security3、进入编辑模式后,通过 / jdk.tls.disabled 搜索到准确的行,按下i,开启编辑,去掉其中的 TLSv1,重启 AFC 服务。修改前的文件:
修改后的文件:
现象:点击 SQL 客户端查看表数据时,浏览器报 WebSocket 连接 404。
解决步骤:
修改 Nginx 配置,在对应 location 中添加:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";重启 Nginx:nginx -s reload
清除浏览器缓存,重新登录后重试。
现象:连接 Hive 数据源时,提示需要上传 core-site.xml、hdfs-site.xml、hive-site.xml。
解决步骤:
从大数据集群获取这三个文件(通常在 Hadoop 客户端 /etc/hadoop/conf 和 Hive 的 conf 目录)。
在 DWS 公共资源-文件管理中上传这三个文件。
在数据源配置中,选择上传的文件(每个文件对应选择)。
确保 DI server 和 Dolphin worker 节点的 /etc/hosts 配置了 Hadoop 集群的主机名解析。
现象:作业执行时报 Permission denied: user=dws。
解决步骤:
在 DI server 或 SeaTunnel 启动脚本中设置 HADOOP_USER_NAME
例如在 diserver/bin/startup.sh 或 seatunnel/bin/seatunnel-cluster.sh 中添加:
export HADOOP_USER_NAME=hdfs # 或实际有写权限的用户重启对应服务。
确认目标 HDFS 目录权限,确保该用户有写权限。
too many connections 现象:测试连接或执行作业时报“too many connections”。
解决步骤:
临时调大数据库最大连接数
MySQL:SET GLOBAL max_connections = 500;
达梦:修改 dm.ini 中 MAX_SESSIONS 参数后重启。
永久修改:在数据库配置文件(如 my.cnf)中增加 max_connections = 500,重启数据库。
| 异常现象 | 章节 |
|---|---|
| Public Key Retrieval is not allowed | 1 |
| MySQL 选不到 schema | 1 |
| MySQL 时间/乱码 | 1 |
| ORA-12514 | 2 |
| ORA-00942 | 2 |
| ORA-00923 | 2 |
| 达梦 database name error | 3 |
| 达梦模式不属于当前用户 | 3 |
| SQL Server 连接 | 4 |
| WebSocket 404 | 5 |
| Hive 缺少配置文件 | 6 |
| Hive 权限不足 | 6 |
| too many connections | 7 |
注:所有数据库操作前请备份重要数据。补丁请从 AME+ 平台申请。