本章节主要对达梦数据库访问常见问题进行分析和处理,以下提供达梦数据库访问常见问题的分析和解决思路供用户参考。除此之外,用户还可前往达梦技术社区参与更多问题讨论。
- 无法连接数据库,报错 6001 网络通信异常/socket 连接失败/ Create SOCKET connection failure
- DM 数据库怎么设置/修改最大连接
- 连接 DM 数据库时提示:未经授权的用户
- 数据库会话不释放或者不重复利用;会一直申请到最大连接数后报错退出
- 在不关闭防火墙的情况下管理工具如何远程连接数据库
- 数据库会不会关闭空闲会话
- 必须给字段加双引号,否则提示无效的列名 TRIGGER_TIME
- 分区表(非堆表)是否能支持 global 索引/全局索引
- 在 DM 数据库中并没有 DmJobMonitor 这个服务,但是在数据库中创建的作业也是能跑起来,有什么实际用途
- DM 数据库如何删除主键索引
- 怎么解决没有查询动态视图权限的问题?没有对象的查询权限
- 创建用户失败要怎么解决
- 快速获取表定义、详细信息的 SQL 语句
- 报错:无效的用户名
- 使用图形界面创建作业
- 数据库登录密码问题
- DM 数据库是否支持 navicat 连接
- MANAGER 如何保存登录信息
- MANAGER 如何执行 SQL
- MANAGER 常用配置
- MANAGER 写 SQL 时如何提示表名
- 图形化界面处理自增参数
- 使用 DM 管理工具更新表数据
- 执行插入语句提示成功但数据并没有真正保存
- 非法的基类名无效的列名
- disql 连接工具的位置
- 命令行终端工具的使用
- disql 登录含特殊字符的密码
- 运行 SQL 文件/执行 SQL 脚本
- SYSDBA 用户名称能修改吗
- SYSDBA 模式下带 的表不可以删除
- 没有创建函数的权限/外部函数共享库加载失败
- [-70070]: Init SSL context error
- 客户端和服务端的通信协议
- 能否在 Windows 连接 Linux 服务器上的达梦数据库
- 达梦有没有生成 uuid 的函数
- 查询时如何忽略值的大小写
- 管理工具连接达梦数据库报错:argument cannot be null
- 达梦管理工具有 Format/美化的功能吗
- 批量执行任务的时候,执行几句就报错
- Failure occurs in data_recv_inet_once
- 如何启用/删除系统包?
- 如何和 Oracle 一样 nvl 函数处理值
- DM 如何将空字符串自动转换为 NULL
- 如何在工具里可视化插入一条数据
- 存储过程使用动态数组报错:标识符长度非法
- 当指定列列表,且 SET IDENTITY_INSERT 为 ON 时,才能对自增列赋值
- 用户账户锁定了,怎么解锁
- 是否支持开启 cdc 或者类似 binlog 功能,提供实时监控采集数据到外部的功能么?比如实时到 kafka
- DM8 是否支持 OLEDB 驱动
- 服务启动后使用管理工具登录时会报系统错误
- 管理工具执行 SQL 文件,出现乱码
- 前台启动数据库显示乱码
- 达梦事务/SQL 自动提交设置
- 如何调出达梦的可视化管理工具
- 报错:没有[CIPHERS]对象的查询权限
- 达梦管理工具打开报错:faild to create the java virtual machine
- DISQL 中设置了 set autocommit on; 但 manager 工具还是需要 commit, 数据才能入库
- 客户端执行脚本时报错内存不足
- 执行 SQL 脚本,报错 invalid file path 错误
- 语句块/包/存储函数中的间隔分区如何支持自动扩展
- 创建局部唯一索引或者 primary key, 必须包含分区列。全局索引不受此限制
- 远程 linux 的数据库服务端,一定要关闭防火墙吗
- 运行管理工具报错:screen for GtkWindow not set
- 运行https://eco.dameng.com/document/dm/zh-cn/faq/manager 或者https://eco.dameng.com/document/dm/zh-cn/faq/dts 图形工具开启报错
- 使用管理工具和 ddl 脚本修改表的注释之后,注释在管理工具中不显示
- 表插入数据以后,重启服务或停止服务后开启服务,表里面的数据丢失
- 用户名密码错误
- linux 系统中,打开管理工具乱码
- DM 集群中,通过 disql 无法连接数据库,manager 工具可以连
- 访问达梦数据库报错:无效的 ip
- 在达梦管理工具上怎么修改结果集?
- 密码非明文登录 DISQL 方法
- 指定 dm_svc.conf 非默认位置
- 数据库设置手动提交模式,但执行新建表后,发现之前未提交事务已被自动提交
- DM8 创建链接访问 Oracle 数据库报错:DBLINK 加载库文件失败
- 使用 xmanger 等工具打开远程服务器上的管理工具报错
- Manager 管理工具连接后没有模式等相关信息
- 使用 disql 连接数据库报错:没有匹配的可登录服务器
- 应用通过私网 IP 连接数据报错:网络通信异常
- Manager 管理工具无法修改表、更新统计信息以及查看表属性
- 使用 DM 客户端管理工具进行某些操作时,弹框报错:Java heap space
- manager 工具关闭了对象导航栏后如何重新打开
- 在 linux 环境下打开 SQL 命令行工具,按“Backspace”无法正常删除
- 达梦如何设置某用户某些 IP 远程访问
- DM 数据库使用 ODBC 方式创建 DBLINK 访问 Oracle 时报错 "[-70037]:字符串不完整" 或者中文显示为问号
- 达梦数据库如何使用 IPV6 连接
- 登录数据库使用 127.0.0.1 或者 localhost 能在本服务器登录,不写则报创建 SOCKET 连接失败
- dm 通过 dblink 查询 Oracle 表,报错:字符串截断
- LINUX/UOS 环境,使用非 ROOT 用户启动管理工具时失败并报错:GLib-Gobject-Warming: 时间日期: invalid (NULL) pointer instance
- 普通用户开启操作系统认证,用 root 用户登录数据库报错:未经授权的用户
- 管理工具连接单机数据库时报错:服务器模式不匹配
- 打开 manage 客户端工具无响应
- 采用 GM 算法进行通信加密。
- mpp 集群全局登录失败报错:”[-6024]:Remote node global login failed.”
- disql 连接数据库报错 Segmentation fault (core dumped)
- Linux 如何设置别名来快速访问达梦数据库
- 如何实现使用 DM 保留字作为对象名
【问题描述】
连接数据库时出现报错:登录服务器失败。
- 客户端管理工具连接数据库报错:错误号 6001,错误消息:网络通信异常。如下图所示:
- 或命令行连接数据库报错:socket 连接失败或 Create SOCKET connection failure。如下图所示:
【问题分析】
使用 DM 数据库时,有时会碰到登录失败的情况。根据使用的连接工具不同,问题具体可能表现为网络通信异常或者 socket 连接失败。
当出现网络通信异常报错时,先考虑客户端与数据库服务器之间网络通信问题;如果客户端与数据库服务器之间网络通信正常,则考虑数据库服务器是否已正常启动。如果网络和数据库服务都正常,则考虑数据库相关连接配置等。
【问题解决】
具体解决办法可参考 DM 数据库连接失败的排查方法。
【问题解决】
关于最大连接数,可参考《DM 系统管理员手册》dm.ini 章节(手册位于数据库安装路径 文件夹下),最大连接数参数如下:
- 主要修改 的值,根据用户自行赋值。建议值大小如下:
以主机 CPU 4 路 8 核内存 64 GB 为例,建议值大小如下:
修改参数在数据库实例路径下的 dm.ini 文件,修改完成后,重启数据库才生效。
- /etc/security/limits.conf 的 open file 也要扩大。跟 Oracle 的 session 和 process 一样。
【问题描述】
新建实例,修改 max_session 为 1。
报错复现: TEST 用户登录
【问题解决】
修改 dm.ini 里面的 MAX_SESSIONS,,修改完重启数据库。
启动服务端的 console 工具查询 KEY 信息(工具在安装目录的 TOOL 目录下)。
如上图所示的最大并发数为 25,调整参数是无效的,需要找销售人员申请对应的 KEY。
再次验证 TEST 用户登录,登录成功,如下图所示:
【问题分析】
其原因很有可能就是连接池没有做好相关配置,或者配置了却设置的值不对,那么超时的原因大概有以下几点:
- 最大连接数大于数据库服务器端配置的最大连接数,多余的连接在被使用到的时候出现连接超时。
- 网络抖动:每次连接的时候提交或维护大量数据,此时网络不稳定导致连接超时。
- 占用的资源未被释放,一般只 Open 一次,获取一个 *DB,但是在使用 stmt,rows 或者是 tx 时候用完没有关闭,耗尽资源也有可能导致连接超时。
【问题解决】
对于出现的 3 种问题,可以试试下面的解决方法:
- 对于最大连接数的问题,调用函数 设置值(小于数据库配置的最大连接)。
- 对于维护大量数据,可以尝试采用事务操作,若失败,回滚。然后重试。
- 使用 defer 关键字,在启用操作的时候直接在下一行加上 函数 return 的时候会执行相关的关闭函数。
如果尝试了以上的解决方法,还是发现偶尔会出现连接超时的错误的话,很可能是因为数据库本身对连接有一个超时时间的设置,如果超时时间到了数据库会单方面断掉连接,此时再用连接池内的连接进行访问就会出错,连接池中的每个连接都维护了一个创建时间,取连接的时候会自动检查的,可以试试调用 db 的 方法来给 db 设置一个超时时间,时间小于数据库的超时时间即可。
【问题解决】
配置服务器防火墙,以 root 身份编辑 文件,向文件中增加 部分信息。
重启 iptables 服务。
【问题描述】
创建线程时就连接数据库了,之后线程一直闲置中,过了一天后链接会话还在吗?数据库会不会把这个会话关闭?
【问题分析】
这个相当于长连接的问题,一天后连接还在,因为数据库不会把这个会话关闭。下面简单介绍下数据库的长连接和短连接。
- 短连接操作步骤:连接-数据传输-关闭连接。
- 长连接操作步骤:连接-数据传输-保持连接-数据传输-保持连接-…………-关闭连接。
这就要求长连接在没有数据通信时,定时发送数据包,以维持连接状态,短连接在没有数据传输时直接关闭就行了。
什么时候用长连接,短连接?
长连接主要用于在少数客户端与服务端的频繁通信,因为这时候如果用短连接频繁通信常会发生 Socket 出错,并且频繁创建 Socket 连接也是对资源的浪费。一般情况下应用和数据库直接的连接都是通过连接池实现,也就是采用长连接的方式。而一般连接到服务器查询某个数据时,这种情况采用的是短连接。
DM 数据库可以通过 查看会话连接情况。比如查询连接超过 7 天的会话,可以通过下面的 SQL 实现:
如果要删掉超过 7 天的会话,可以通过下面的 SQL 先找过超过 7 天的会话,然后把里面的内容拿出来执行:
假如结果是::直接在 manager 中执行即可删除该条连接。
执行结果, 这个会话被关闭。
因为测试机刚启动的没有超过 7 天的会话,执行的时候没加后面的 where 条件。
【问题分析】
可能与大小写敏感的设置有关:
- 大小写敏感的情况下,字段会自动转换成大写。
- 加引号是不让字段转换成大写,这个表里面的字段在创建时应该是小写的。
- 从 MySQL 迁移到 DM,最好在迁移到之前,设置 DM 数据库初始化大小写不敏感。
大小写设置方法:
大小写敏感设置在初始化实例中可以设置大小写敏感参数。
查看大小写敏感的方式:
- 链接数据库右键数据库管理服务器页面。可以看到当前数据库是否是大小写敏感设置。
- 命令行的方式查看
【问题分析】
DM 数据库支持对水平分区表建立普通索引、唯一索引、聚集索引和函数索引。创建索引时若未指定 GLOBAL 关键字则建立的索引是局部索引,即每一个表分区都有一个索引分区,并且只索引该分区上的数据。如果指定了 GLOBAL 关键字则建立的索引是全局索引,即每个表分区的数据都被索引在同一个 B 树中。
详见《DM8 系统管理员手册》第 15 章节内容。(手册位于数据库安装路径 文件夹下)
DmJobMonitor 是监控作业的服务,监控作业是否正常,一般是在 DM 管理工具里点击【作业】-【查看历史作业信息】即可获取作业的运行情况。
遇到 DM 数据库主键索引无法删除的情况不要着急,可以先将表的主键约束去除,再执行删除即可。
【问题描述】
用户查询报错:
【解决方法】
- 使用 SYSDBA 用户,给没有权限的用户赋权(赋予 VTI 角色):
- 或者直接赋予相应视图的查询权限(比如查询 v$dm_ini 视图的权限):
创建用户失败的原因可能有多,具体问题要具体分析,遇到错误时首先查看报错的详细信息,这样才能快速的定位和解决问题,下面列举几种常见的错误:
- 用户名已经存在该用户
- 密码复杂度不符合要求
- 授权不正确,如下授权,选择的是【ALL】,有些权限是不能分配给普通用户的,如下图所示:
如果是在 windows 操作界面,可以直接用管理工具-单击表然后右键查看。
如果是在 Linux 界面可通过以下方法查看。
- 方法一
调用 DM 存储系统过程 ,获得表的定义,如下图所示:
参数说明:
这个存储过程,直接 call 调用或者写在匿名块中调用均可。
比如,查询 DMHR 模式下 EMPLOYEE 表定义:
这个存储过程是 DM 数据库独有的,Oracle 并没有这个存储过程。但是它存在一个缺点,只能查询表,不能查询其他类型的对象。
所以这里推荐第二种方法,也是笔者最常用的查询表定义的方法。
- 方法二
,DBMS_METADATA 系统包包含了许多实用的函数,有兴趣可以查看 DM 官方文档慢慢了解,这里就不一一赘述了,介绍一下 GET_DDL,如下图所示:
我们再测试一下这个包:
GET_DDL 功能非常强大,可以用于获取数据库对表、视图、索引、全文索引、存储过程、函数、包、序列、同义词、约束、触发器等的 DDL 语句。
- 建立用户的时候,会建个同名的模式,如果模式已存在就会报错,如下图所示:
- 所登录的用户名就没有建立。
- 搭建 dsc 的时候,asm 环境初始化报的 ,检查一下 DMDCR_CFG.INI 里面的 ,如下图所示:
首次使用时,需要先创建代理环境,如下图,在代理上右键,选择【创建代理环境】,如下图所示:
然后在作业上右键新建作业,出现右边的方框中选择【添加】,如下图所示:
选择作业调度之后,在右下方选择【新建】,然后出现调度频率和时间的选项。
- 忘记密码怎么办?
如果是系统用户 SYSDBA、SYSSSO 忘记密码,是没有办法找回来的。
如果是自定义的用户密码丢失了,可以通过 SYSDBA 来更改密码。
- 数据库是否有默认密码/用户口令?
DM 数据库密码默认是和用户一样的,大写 SYSDBA。
- 密码中含有 @/等特殊字符怎么办?
需要通过转义符来处理。disql 转义符使用如下:
linux 环境,需要使用双引号将密码包含进来,同时外层再使用单引号进行转义,具体例子如下:
windows 环境,需要使用双引号将密码包含进来,同时对双引号使用进行转义,具体例子如下:
- Manager 客户端登录保存密码为什么还是需要输入密码?
需要注册连接。
- SYS 用户密码是多少,SYS 能登录吗?
SYS 是不能登录的?
- 数据库更改密码策略,对以前建立的用户不生效?
删除重建。
- SYSSSO 用户密码是多少?
DM 数据库初始化时设置 SYSSSO 的密码,默认为 SYSSSO,仅在安全版本下可见和可设置。
- 用户密码过期及修改用户登录失败次数超过限制怎么办?
用 SYSDBA 登录来修改用户的配置,先修改密码再修改资源。
- DM 数据库的密码策略是什么?
通过 DM.INI 里的参数: 设置系统默认口令策略。
若为其他数字,则表示配置值的和,如 3=1+2,表示同时启用第 1 项和第 2 项策略。
当 INI 参数 COMPATIBLE_MODE=1 时,PWD_POLICY 的实际值均为 0。
- 怎么查看密码策略?
可以通过如下视图查询系统策略情况:
- 怎么设置或修改密码?
通过如下命令设置系统密码策略,该参数为动态参数,修改后即时生效,不需要重启数据库。
设置策略成功后,对新创建的用户有效。原来的用户需要通过 alter user 修改用户的密码策略:
更多关于设置密码相关问题,请参考《DM_SQL 语言使用手册》管理用户-用户定义语句。(手册位于数据库安装路径 文件夹下)
Navicat 工具暂不支持 DM 数据库,DM 数据库的连接可以使用数据库自身的 DM 管理工具进行连接。
DM 数据库管理工具存放在安装目录 dmdbms 下的 tool 文件夹中打开 manager.exe 进行连接即可。
DM 管理工具 MANAGER,在打开以后,可以通过注册连接按钮新建连接,该方法新建的连接会保存到左侧的连接导航栏中。
DM 管理工具 MANAGER,在登录以后,右侧 SQL 窗口输入 SQL 语句后,可以点击工具栏上对应的绿色三角按钮执行,完成后需要点击后面的【提交】或者【回滚】按钮完成事务的提交和回滚。
- 打开管理工具-选项
- 在选项下有一些设置,DM 管理工具-窗口-选项。可以根据实际需求进行一些配置的调整。
- 消息区-显示的最大字符数
会影响使用语句块进行批量循环 PRINT 信息,需要调大。如果过小,消息区显示的 SQL 内容不全,PRINT 的信息也显示不全。
- 大小写敏感
如果不是必须大小写敏感,建议将管理工具上保持大小写敏感配置取消,这样后台全部转换成大写,就不会造成表名、字段名等由于大小写缘故出现无效的字段或者表名之类的错误。
- 出错后继续执行
生产环境要关闭自动提交和出错后继续运行的配置,避免出现错误后,无法挽回。
- 显示的最大字符数
DM 数据库中可以模糊提示表名,在 DM 管理工具中右键【选项】,把编辑器中需要的选项全部勾选上。
根据需要勾选好就可以达到自己想要的设置了。
DM 支持 INT 和 BIGINT 两种数据类型的自增列,并提供以下函数查看表上自增列的当前值、种子和增量等信息:
在新建表的时候,选中表-修改-把对应列设置为自增列。
登录用户,找到【模式】,找到相关的表,点击右键,选择【浏览数据】,将列表中的数据拉到最底下,点击【not null】输入数据,然后点击保存。
管理工具默认是非自动提交的(窗口—选项),在执行 insert、update 等对数据进行修改的语句以后,需要执行 commit 命令进行提交。
如需修改成自动提交模式,可以在管理工具的对应选项中进行勾选,如下图所示:
使用 DM 管理工具访问 DM 数据库,在使用图形化工具查看数据库对象时,报错:非法的基类名/无效的列名等。
- 这种情况一般发生在客户端工具与服务器的版本差别较大的时候,需要更新客户端,并与服务器版本保持一致。
- 需要启动系统包,比如 ,启动相应的系统包,具体方法参考《DM 系统包使用手册》(手册位于数据库安装路径 文件夹下)。
数据库 disql 连接工具的存放位置,在 Linux 环境下假设数据库安装目录在 /opt/dmdbms/ 目录下,进入 /opt/dmdbms/bin 下执行 输入对应的用户名和密码即可访问数据库。
DM 命令行工具位于数据库安装目录的 bin 下,图形化工具位于数据库安装目录的 tool 下。我们以 Linux 环境为例,假设 DM 数据库安装目录为 /opt/dmdbms 下,则命令行工具都在 /opt/dmdbms/bin 下,常用的命令行工具包括并不限于:
DM 数据库提供了类似于 Oracle 的 sqlplus 的终端工具,即 DM 命令行客户端工具 disql,工具的路径在安装路径下的 https://eco.dameng.com/document/dm/zh-cn/dmdbms/bin/ 下,格式:
Linux 环境基本使用方法如下(路径以实际环境为准):
Windows 环境使用和 Linux 环境类似。
当密码后面不跟 时,则默认为 。
更多功能的详细使用方法请参考《DM_disql 使用手册》。(手册位于数据库安装路径 文件夹下)。
详细描述型可以帮助您更了解 DM SQL 语言处理特殊字符转义字符,如果您急需解决问题,请往下查看“简单描述型”。
举例 1:window 操作系统:
创建用户,如下所示:
使用 disql 登录报错如下:
disql 正确的登录如下:
- disql 的关键字符,disql 的要求对连接串的特殊字符需要使用双引号括起来"aaaa/aaaa",操作系统的要求需要再在最外加双引号和转义"""aaaa/aaaa"""。例如:用户名为 user01,密码为 aaaa/aaaa,那么连接串要写成:
- 空格,需要使用双引号括起来作为一个整体(这是操作系统的要求)。例如:用户名为 user01,密码为 aaaa aaaa,那么连接串要写成:。
- 双引号:disql 要求对双引号需要使用双引号括起来,同时双引号需要转义"aaaa""aaaa";操作系统要求再对双引号转义和最外层加双引号那 么 连 接 串 要 写 成 : 。
举例 2:Linux 操作系统:
创建用户,如下所示:
disql 登录报错如下:
Linux 登录输入反斜杠结果显示 如下。
原因是字体选择问题导致。
Linux,shell 输入反斜杠显示 。
solution:字体必须为 。
正确的登录方式如下:
bash 的引号设计为:在单引号中,所有的特殊字符都失去其特殊含义;在双引号中,特殊字符包括:美元符($)、反引号(`)、转义符()、感叹号(!)。
如果密码中没有单引号的,应该都只有外面加单引号就可以解决了;如果密码只有单引号,那么可以将单引号用双引号括起来;如果既有单引号又有美元符($)、反引号(`)、转义符()、感叹号(!)四个特殊字符,那么在特殊字符之前全部加转义即可。举例如下:
其次,在操作系统要求的基础上,增加 disql 对关键字和双引号的要求。
- disql 的关键字符,disql 的要求对连接串的特殊字符需要使用双引号括起来。
例如:密码为 aaaaaaaa,使用双引号括起来“aaaaaaaa”,因为此密码中不含有单引号,根据操作系统的要求直接在最外面加单引号。
例如:用户名为 user01,密码为 aaaa/aaaa,那么连接串要写成:
- 双引号, disql 要求对双引号需要使用双引号括起来,同时双引号需要转义。例如:密码为 aaa”aaaa,那么根据 disql 的要求加双引号同时转义。
为”aaa””aaaa”,因为没有单引号,根据操作系统的要求直接加单引号。例如:用户名为 user01,密码为 aaa”aaaa,那么连接串要写成:
- 单引号,根据操作系统的要求,只能将单引号放入双引号中。
例如:用户名为 user01,密码为 aaaa'aaaa,那么连接串要写成:
- 单引号 + 操作系统下的特殊字符,根据操作系统的要求,因为单引号只能放在双引号内,同时双引号中还有一些特殊字符不能被识别需要加反斜杠转义。
例如: 用户名为 user01,密码为 ,使用双引号括起来,同时对 $ 加反斜杠转义。那么连接串要写成:
- 单引号 + 双引号,根据操作系统的要求,单引号需要放在双引号中,在双引号中表示双引号则使用反斜杠转义双引号。
例如: 用户名为 user01,密码为 aaa”'aaaa,根据 disql 的要求双引号作为特殊字符,需要使用双引号在括起来,同时使用双引号对双引号转义”aaa””'aaaa”;同时考虑操作系统的要求,因为含有单引号,只能将整个密码放入双引号中,同时对双引号使用反斜杠转义,
那么连接串要写成:
如何转义双引号?
disql 的要求使用双引号对双引号内的双引号转义。
- Windows 命令行,使用双引号或者反斜杠对双引号内的双引号转义。
- Linux 命令行,使用反斜杠对双引号内的双引号转义
简单描述型:
有时候密码包含了 等特殊字符导致 disql 无法直接连接和运行。需要通过转义符来处理。disql 转义符使用如下:
- Linux 环境下,需要使用双引号将密码包含进来,同时外层再使用单引号进行转义,具体例子如下:
- windows 环境下,需要使用双引号将密码包含进来,同时对双引号使用进行转义,具体例子如下:
- Windows 环境
启动 disql 时,运行脚本如下:
启动 disql 之后,运行脚本如下:
- Linux 环境
具体使用方式,参考《DM_Disql 使用手册》第 5 章节-如何在 Disql 中使用脚本。(手册位于数据库安装路径 文件夹下)。
SYSDBA 是超级管理员,无法修改。
此为系统表,一般有两张,。不可删除。
【问题描述】:
执行创建外部 Java 函数的操作,提示没有权限/没有创建函数的权限/"外部函数共享库加载失败"
【解决方法】:
根据以下步骤进行排查:
- 检查参数 ENABLE_EXTERNAL_CALL 是否等于 1,在 dm.ini 里面修改 重启数据库服务才能创建外部函数。
- 检查 jar 包所在绝对路径是否正确;
- 检查 dmagent 配置是否正确,自建的 jar 包能否正常调用。
- 检查 jar 包打包方式,若 jar 包中存在多个主类,使用 Maven 进行打包会导致依赖不全,外部函数无法调用。正确打包方式应使用 Build Artifacts 打包,指定好主类集所有依赖包在项目中打包成一个 jar,这样能确保 jar 包能正常调用。打包方式如下图所示。
(1)点击 文件--> 项目结构---> 工件,添加 jar。
(2)指定好主类。
(3)左上角菜单栏 构建---> 构建工件,即可完成多主类 jar 包的打包。
- 更多外部函数正确调用过程,请参考《DM_SQL 语言使用手册》第 10 章节。(手册位于数据库安装路径 文件夹下)。
【问题描述】
【问题解决】
检查初始化参数 ENABLE_ENCRYPT 是否设为 1,如果为 1,说明所有的通信都已经 SSL 加密了,同时任何用户连接数据库都需要 SSL 证书。安全版中默认开启了 SSL 加密。
如果链接的时候不需要 SSL 证书 ,可将 ENABLE_ENCRYPT 设置为 0。执行以下语句将其关闭:
执行完后重启数据库才能生效。
ENABLE_ENCRYPT 参数是在 DM.INI 配置文件里面设置,其他设置方法参考《DM 系统管理员手册》第 2.1 小节(手册位于数据库安装路径 文件夹下)。
在确认使用 SSL 加密的情况下,有以下几种可能的原因:
- 输入的 SSL 验证密码不正确:
如果是通过 jdbc 接口来加密访问数据库,是使用的.keystore 文件,所以 SSL 认证密码是 keystore 文件的密码;
如果是通过 ODBC 或者其他方式加密访问数据库,那么是使用 ca-cert.pem、client-cert.pem 和 client-key.pem 三个文件,所以 SSL 密码为客户端私钥密码。 - 证书文件可能存在问题;
- 当前操作系统用户无访问客户端证书的权限;
对应的处理方法为:
- 检查验证客户端私钥密码或者 keystore 文件密码是否正确,或者直接重新生成客户端证书等文件;
- 使用多种方式登录测试验证,比如使用 disql 和 jdbc 两种方式进行测试验证;
- 检查当前用户是否有访问客户端证书的权限,或者将证书目录权限设置为 777,比如:chmod 777 -R client_ssl;
TCP/IP 协议,可以通过 SSL 加密。
如果想拥有审计 SQL 语句的功能,建议通过 ,配合修改 sqllog.ini 生成 SQL 日志(详见《DM 系统管理员手册》-2.1.1 章节,手册位于数据库安装路径 文件夹下),对生成的日志文件进行审计。如果是希望在网络层通过截取消息包进行解析,从而获取 SQL,建议通过商务联系,进行产品适配。
使用 DM 数据库客户端工具可以实现在 Windows 上连接 Linux 服务器。
使用 guid() 函数查询:
- 初始化数据库实例的时候,“大小写敏感”参数设置成“N”。
- 用函数进行查询。
客户端和服务端版本不匹配,比如高版本连接低版本等。
使用快捷键 或使用右键菜单-->SQL 脚本--> 格式化
数据库日志有这个错误,批量执行任务的时候,执行几句就报错:Database P0000024537 main_thread cmd 13 validate error
可以把 dm.ini 参数配置文件里面的参数 COMM_VALIDATE(是否对消息进行校验。0:不检验;1:检验) 设置成 0。
这是通信中产生的告警信息,错误代码是操作系统返回的,107 Transport endpoint 传输终点没有连接,在系统繁忙的时候会刷这个,通常可以忽略。
可以参考《DM 系统包使用手册》,手册位于数据库安装路径 文件夹。
【问题描述】
Oracle 中 nvl 函数处理的值,达梦数据库用 ifnull/isnull/nvl 处理,我看数据库值是 NULL 才处理了,’’就不能处理,怎么和 Oracle 一样处理?
【问题解决】
将 dm.ini 的参数 COMPATIBLE_MODE 改成 2,处理 NULL 的方式就和 Oracle 一样了。
将 dm.ini 的参数 COMPATIBLE_MODE 改成 2。
在 DM 管理工具中,右键点击【表】,浏览数据:
直接在结果集进行编辑,然后点击右键选择【保存】:
检查 dm.ini 参数 COMPATIBLE_MODE,如果值为 3,达梦数据库为兼容 SQL Server 的模式,则不支持数组,可以选择改变兼容模式或使用动态表改写。
这个是会话级的,而且同一会话只能有一个表 set,当插入数据并且要指定自增列的值时,必须要通过语句将 IDENTITY_INSERT 设置为 ON 时,插入语句中必须指定“PERSON_ TYPEID ”(举例)中要插入的列。对自增列插入指定数据时候,先执行一下 SET IDENTITY xxx 就行了。
- .SET IDENTITY_INSERT 表名 ON :表示开启对标识列显示值插入模式,允许对标识列显示值进行手动插入数据。
- .SET IDENTITY_INSERT 表名 OFF:表示关闭对标识列显示值的插入操作,标识列不允许手动插入显示值。
使用系统管理员登录执行:
也可以使用管理工具进行可视化处理:
可通过达梦数据实时同步软件 DMHS,来进行处理同步推送。
DM8 不支持 OLEDB 驱动,请用达梦的 ODBC 驱动代替。
- 重启下数据库,看问题是否解决。若重启后解决,可能是旧版本 BUG,建议升级数据库版本彻底解决此问题,或者定期重启数据库。
- 如果重启数据库后还是报错,可能是客户端与数据库版本不匹配导致的,需要将客户端和服务端版本换成一致的。
需要确保操作系统、数据库、SQL 文本三者字符集一致,避免出现乱码。
更改连接工具字符集,确保同服务器字符集一致。
- 默认非自动提交
- 管理工具设置自动提交方式:窗口-选项-查询分析器-自动提交,请参考执行插入语句提示成功但数据并没有真正保存
进入到安装目录的 tool 目录下:
- Windows 系统:可以直接双击运行
- Linux 系统:https://eco.dameng.com/document/dm/zh-cn/faq/manager
修改用户所属角色,勾选授予 VTI 权限,或者用 sysdba 给账号权限:
- 可能是和其他软件冲突了。先关闭掉其他软件,再打开管理工具试试。
- 服务器内存不够。
需要设置选择管理工具-窗口-选项-查询分析器-自动提交。请参考执行插入语句提示成功但数据并没有真正保存
- 分段执行 SQL 脚本;
- 点击客户端右下角垃圾收集,缩小堆大小,释放空间。
- 检查 SQL 脚本路径是否正确,要脚本的绝对路径。
- start d:/test.sql 注意,在该语句后面不要加";"结束符。
可以设置 dm.ini 参数:DEL_HP_OPT_FLAG 取值为 4,允许语句块中的间隔分区表自动扩展。
执行下列语句:
如果不关闭防火墙的话 要把相关端口加入到策略里。
【问题描述】:
dmdba 用户在 /home/dmdba/dmdbms/tool 路径下,执行 https://eco.dameng.com/document/dm/zh-cn/faq/manager 报错。
dmdba 用户执行 xhost + 可以正常出来 access control disabled, clients can connect from any host.
【问题解答】:
这个是图形化界面打不开的问题,建议咨询操作系统技术人员。或者改用命令行方式进行数据库操作。
【问题描述】
数据库用命令行的方式可以正常启动。
用 dmdba 的用户在 tool 目录下运行https://eco.dameng.com/document/dm/zh-cn/faq/manager 或者https://eco.dameng.com/document/dm/zh-cn/faq/dts 会报错:/usr/share/themes/kylin-black-theme/gtk-2.0/gtkrc:817: 找不到包含文件:“apps/caja.rc”
【问题解决】
这个是图形化界面打不开的问题,建议咨询操作系统技术人员。或者改用命令行方式进行数据库操作。
- 在管理工具中修改表的注释,如图所示:
- 如果使用 SQL 脚本修改表的注释,执行结束后需要执行 commit 提交操作:
也可以设置管理工具的菜单:窗口--> 选项--> 查询分析器--> 自动提交 进行勾选。如下图:
默认是手动提交的方式,执行数据插入语句后,需要执行 commit 进行提交,否则会回滚。类似问题请参考 执行插入语句提示成功但数据并没有真正保存
- 注意大小写敏感
修改密码语句中密码未加双引号,登录需要把小写字母全部改为大写; - 注意不要用操作系统的用户名和密码输入,用数据库的用户名密码登录 ,默认是 SYSDBA/SYSDBA;
- 注意登录端口是否正确,可以试着添加 IP 和端口号来登录;
- 如果是全库备份还原,注意在目的库上,再次登录的时候,用户名密码要用源库的。
回答:可能是因为操作系统缺少中文字库,确保操作系统、数据库的字符集一致。
【问题说明】
主备集群中,通过 disql 无法连接数据库,manager 工具可以连。报没有匹配的可登录服务器。查看 dm_svc.conf 如下:
【问题解决】
服务名中配置的 LOGIN_MODE 为全局模式,需要把 LOGIN_MODE 配置在 OA 服务名下,如下:
- 检查防火墙状态,关闭防火墙
- 查看用户和用户状态
- 查看用户 访问 ip 限制和资源限制,看 IP 是否设置在资源限制里。
- 修改用户 资源限制条件
默认 DISQL 登录数据库密码是明文,以下登录方式可以不显示密码:
https://eco.dameng.com/document/dm/zh-cn/faq/disql /nolog 登录 DISQL 后,输入 login 登录数据库,按照提示填写 IP 号、用户名、密码、端口号等选项;
如果想要不用每次登录都输入端口,可以在配置文件 dm_svc.conf 中配置
【问题描述】
在 MANAGER 管理平台执行完一些新增记录事务后未提交,后面新建表后,发现之前的未提交事务已被自动提交。例如:在同一会话中依次执行以下 3 条语句,且均不提交:
在另一会话中查询 SYSDBA.TEST 表,得到如下结果
发现可以查到会话 1 插入的语句,说明 insert 语句已经提交。
【问题解决】
在手动提交模式下,当遇到 DDL 语句时,DM 数据库会自动提交前面的事务,然后开始一个新的事务执行 DDL 语句,这种事务提交被称为隐式提交。DM 数据库在遇到以下 SQL 语句时会自动提交前面的事务:
- CREATE;
- ALTER;
- TRUNCATE;
- DROP;
- GRANT;
- REVOKE;
- 审计设置语句。
【问题描述】:
【问题解决】:
然后,使用 find 命令查找系统上对应的动态库文件,查找到之后加入到 LD_LIBRARY_PATH 系统环境变量,或者添加到 /etc/ld.so.conf.d 目录下指定的配置文件中。如下:
然后需要重启 DM 数据库(前提是 LD_LIBRARY_PATH 或者 ldconfig 配置正确),重启服务后数据库会加载 Oracle OCI 驱动,之后就可以正常使用 DBLINK 访问 Oracle 数据库。
【问题描述】
使用 xmanger 等工具打开远程服务器上的 manager 图形工具报错,如下图:
依据提示查看 https://eco.dameng.com/document/dm/zh-cn/workspace/manager/.metadata/.log 日志文件,提示缺少库文件 libgtk-x11-2.0.so.0,而无法打开图形窗口,如下图:
【问题解决】
使用 yum 命令查找提供这个库文件的软件包,如下图:
安装 gtk2 这个软件包:
【问题分析】
出现这种情况一般有如下两种原因:
- 检查数据库启动状态,若是以 mount 方式启动,修改为 open 状态即可。
- 客户端版本和数据库服务的版本相差太多的问题,请使用服务版本下客户端,或者重新下载对应的安装包安装对应版本客户端。
【问题描述】
数据库服务处于启动状态,通过数据库服务本地登录 disql 登录数据库用户,显示报错:-70019:没有匹配的可登录服务器。
【问题分析】
出现该报错可能是由于以下几种原因:
- 数据库连接会话数超过 MAX_SESSIONS 设定值。
- 因为 Linux 环境中 ulimit 配置中的 max open files 参数配置过小或者配置未生效。
- dm_svc.conf 配置了全局的 login_mode 参数。
【问题解决】
可根据以下思路进行排查:
- 明确数据库服务处于启动状态,通过如下命令查看进程是否存在。
- 检查 disql 连接数据库的端口是否正确,可以通过命令 或者 查看,参考登录命令:https://eco.dameng.com/document/dm/zh-cn/faq/disql 用户名/密码 @IP:端口号 。
- 检查是否由数据库连接会话数超过 MAX_SESSIONS 设定值引发。检查方法有两种:
(1)排查数据库服务本地日志中是否存在类似于“Reached the max session limit” 的 ERROR 错误,如果存在,则说明数据库连接的会话数超过了 MAX_SESSIONS 设定值。可以调整 dm.ini 中的 MAX_SESSIONS 参数值,重启数据库服务生效(MAX_SESSIONS 原则上应综合考虑数据库架构、业务需求、应用代码层数据库连接设计逻辑等方面进行设置)。
(2)通过 dmserver 服务的线程连接情况判断,比如:通过 获取 dmserver 的进程号,比如为 5009,然后通过命令: 查看达梦服务的线程数是否超过 MAX_SESSIONS 的值。
- 排查日志是否存在报错:“warning: Couldn't set socket option for set timeout: 5000, err_code: 88, which:0,r:-1”。如果存在该报错则是因为 Linux 环境中 ulimit 配置中的 max open files 参数过小或者配置未生效导致。重新配置 max open files 参数为 65536,然后重启数据库服务即可。可参考如下方法处理:
(1)通过如下命令获取数据库服务进程 PID 值:
(2)通过如下命令查看当前服务进程的 ulimit 资源限制情况:
(3)通过命令 ulimit -a 查看当前操作系统配置的 ulimit 资源限制情况,如果配置不对可参考如下命令单独修改 ulimit 配置:
(4)修改完后可通过如下命令查看当前进程 open files 数量:
(5)确认无误后,重启数据库服务,让新的进程按照配置后的 ulimit 资源限制情况生效即可,重启后复核进程的资源限制情况。
- 检查 dm_svc.conf,是否配置了全局的 login_mode 参数,如果是,删除全局的 login_mode 参数,配置为局部参数。
【问题描述】
应用和数据分别部署在两台虚拟机上,但应用通过虚拟机配置的私网 IP 连接报网络通信异常,且实际用私网 IP 可以 ping 通。
【问题解决】
考虑将私网 IP 改为绑定的弹性 IP 进行连接。在虚拟环境下,可能网络需要进行多次测试。
【问题分析】
【问题解决】
考虑是否是客户端版本与连接的数据库服务端版本时间跨度太大,建议使用与 DM 服务端版本一致的客户端重新安装。查看数据库版本方法:
【问题解决】
在管理工具上方导航栏中,选择:窗口--> 视图--> 对象导航,即可重新开启对象导航栏。
【问题描述】
利用 disql 打开 SQL 命令行工具,在输入 SQL 命令时,发现按“Backspace”无法正常删除,如下图所示:
【问题解决】
- 方法一:在 dmdba 用户的 .bash_profile 文件中添加 stty erase ^h,再执行 source .bash_profile 使修改生效。如下图:
- 方法二:按住 Ctrl + Backspace 进行删除。
【问题解决】
方法 1:通过达梦客户端 manager 工具进行设置,如下图所示:
方法 2:通过 sql 语句修改。相关语法参考以下 sql:
【问题描述】
有如下两种情况:
情况一:DBLINK 使用 ODBC 方式访问目的表时,中文显示为问号。如下图:
isql 直接访问:
情况二:DBLINK 使用 ODBC 方式创建,重启数据库之后,访问目的端表报错 "[-70037]:字符串不完整"。
【问题原因】
出现以上两种情况的报错均与配置 NLS_LANG 环境变量有关,以下方法以情况一为例,但同样适用于解决情况二的报错。
可以看到上面,isql 直接访问 Oracle ,以及达梦通过 ODBC 数据源访问创建 DBLINK 访问 Oracle 时,中文会显示乱码,一般是与客户端字符集环境有关,可以通过设置 NLS_LANG 环境变量指定客户端字符集。如下:
- 配置与 Oracle 数据库相同的 NLS 环境
- 配置 NLS_LANG 环境变量,添加到.bash_profile 中
- 生效后,再次使用 isql 进行查询正常,但是 DBLINK 中还是乱码,
这是由于 DM 数据库启动时未将 NLS_LANG 环境变量加载导致。
如果在 DM 数据库启动时未加载到 NLS_LANG 环境变量,即使是 disql 窗口配置了 NLS_LANG 环境变量并生效也是无法正常显示中文的,所以在配置 NLS_LANG 环境变量生效后,需要在当前会话窗口重启 DM 数据库后才能正常显示中文。 - 此时可能会出现两种异常情况:
1.配置 NLS_LANG 生效后启动 DM 数据库,然后 disql 窗口未配置 NLS_LANG,isql 查询中文显示问号,disql 查询结果正常;
2.DM 数据库启动会话窗口未配置 NLS_LANG,disql 窗口配置了 NLS_LANG 之后,isql 查询正常看,disql 查询中文显示问号。 - 以上异常情况有两种解决办法:
方法 1:使用 Oracle OCI 的方式创建 DBLINK。如果数据库启动时未加载 Oracle OCI 驱动,需要重启数据库加载 Oracle OCI 驱动。
方法 2:配置好 NLS_LANG 环境变量并生效后,在当前窗口重启 DM 数据库服务。
【问题解决】
- 检查 IPv6 是否启用
默认 Centos 7 启用了 IPv6,Windows(win10 win11)也默认启用了 IPv6。简单查看系统是否启用 IPv6:
- 测试机器之间 IPv6 地址是否能正常通信
假如 Linux 数据库服务器为 A 机,Linux 客户端机器为 B 机,Windows 客户端机器为 C 机
B 机 telnet A 机:telnet -6 A 机 ipv6 地址 %B 机使用的网络接口名称 端口号 (Linux-Linux,网络接口名称比如 ens32)
C 机 telnet A 机:telnet A 机 ipv6 地址 %C 机对应地址的 scopeid 端口号 (Windows-Linux,scopeid 为 Windows IPv6 地址那里显示的"ipv6 地址 %scopeid"中的 scopeid)
例如:Linux 数据库服务器的 IPv6 地址为 fe80::1a2d:8be9:91f6:6b51 , IPv4 地址为:192.168.15.71。客户端机器地址:为 fe80::89b7:a6c4:d5cc:d905,测试结果如下图表示测试结果正常:
- 使用 disql 进行连接测试
1.Linux 客户机使用 disql 连接
2.Windows 客户机使用 disql 连接
- 使用 DM 管理工具进行连接测试
Linux 客户机和 Windows 客户机使用 DM 管理工具进行连接方法相同,如下图所示:
- 使用 dm_svc.conf 中服务名方式连接测试
dm_svc.conf 文件配置内容如下:
- 简单的 JAVA 代码测试
1.直接使用 IPv6 地址连接,操作数据库成功
【问题描述】
disql 登录数据库出现:使用 127.0.0.1 或者 localhost 能在本服务器登录,不写则报创建 SOCKET 连接失败。如下图:
【问题解决】
请检查 /etc/hosts 配置,配置 127.0.0.1 的主机名配置,如下所示:
【问题描述】
- 环境描述
- 问题重现
(1)在 Oracle 端创建用户、建表和插入数据语句如下:
(2)在 win 平台使用管理工具 SYSDBA 登录,创建 dblink,并通过 dblink 查询 Oracle 端数据,报“字符串截断”(没有放 Oracle 的 oci 可以直接创建 oracle 的 dblink,也可以直接替换掉附件中的 bin 目录升级到 70 版本)。
【问题解决】
【问题描述】
LINUX/UOS 环境安装了达梦客户端工具,使用非 ROOT 用户启动 DM 管理工具时失败,提示"GLib-Gobject-Warming: 时间日期: invalid (NULL) pointer instance……"。
【问题解决】
变量赋值后,重新启动 DM 管理工具即可。
方法三:永久解决所有用户在本地启动图形化工具的显示问题,可以通过在/etc/profile 文件最后一行添加赋值语句:
【问题描述】
Windows 环境下操作系统用户 dameng 基于 OS 的身份验证登录数据库。普通用户开启操作系统认证,用 root 登录数据库报错:未经授权的用户。详情如下:
1、在数据库中创建一个操作系统的同名用户,并修改 INI 参数。
2、重启数据库后,参数生效。
3、在操作系统中创建 dmusers 用户组,并将操作系统用户 dameng 添加到 dmusers 用户组。
4、操作系统用户 dameng 基于 OS 的身份验证登录数据库,报错:“未经授权的用户”。
【问题解决】
1、电脑切换到 dameng 用户下。
点击当前用户,切换到 dameng 用户。
2、打开 cmd 重新登录。
【问题分析】
此类错误往往因为 dm_svc.conf 配置出错导致。
【问题解决】
- 检查是否配置了不存在的参数,或者其他参数配置有误;
- 检查集群相关参数是否配置成全局,如 LOGIN_MODE 参数。
dm_svc.conf 正确配置如下:
dm_svc.conf 部分参数说明:
时区。
LANGUAGE 操作系统语言 当前数据库服务器使用的语言,会影响帮助信息错误和提示信息。支
持的选项为:CN(表示中文)和 EN(表示英文)。可以不指定,若
不指定,系统会读取操作系统信息获得语言信息,建议有需要才指定。
LOGIN_MODE 4 指定优先登录的服务器模式。0:优先连接 PRIMARY 模式的库,
NORMAL 模式次之,最后选择 STANTBY 模式;1:只连接主库;
2:只连接备库;3:优先连接 STANDBY 模式的库,PRIMARY 模式
次之,最后选择 NORMAL 模式;4:优先连接 NORMAL 模式的库,
PRIMARY 模式次之,最后选择 STANDBY 模式。
RW_SEPARATE 0 是否启用读写分离。0:不启用;1:启用;2:启用,备库由客户端
进行选择,且只会选择服务名中配置的节点。
RW_PERCENT 25 读写分离分发比例,有效值范围 0~100。 SWITCH_TIMES 1 以服务名连接数据库时,若未找到符合条件的库成功建立连接,
将尝试遍历服务名中库列表的次数。有效值范围:
1~。
SWITCH_INTERVAL 200 在服务器之间切换的时间间隔,单位为毫秒,有效值范围:
1~。
此外在全局服务中还可以配置服务名,用于数据库登录。例如:在全局服务配置中配置服务名为 DMRW 的服务
名词解释:
服务名:用于连接的服务名,参数值格式为:服务名=(IP[:PORT],IP[:PORT],......)。IP 为数据库所在的 IP 地址,如果是 IPV6 地址,为了区分端口,需要用[]封闭 IP 地址。PORT 为数据库使用的 TCP 连接端口,可选配置,不配置则使用默认的端口。
更多详细参数说明请参考数据库安装目录的 doc 下《DM8 系统管理员手册》。
【问题描述】
manage 客户端工具,前期打开了某个大文件导致卡死,任务管理器中结束后重新打开或者重启电脑打开后仍然无响应。
【问题解决】
删除 manage 工具元数据中缓存文件即可,如:C:bigprogramdmdbms oolworkspacedatamanager.metadata.plugins,删除该路径中所有文件后重新打开后即可恢复。对于 manage 客户端界面位置调整混乱后需要恢复默认界面的,该方式也适用。
【问题描述】
如何采用 GM 算法进行通信加密?
【问题解决】
可以采用基于应用层消息包的方式开启 GM 算法的通信加密,具体方法如下:
- 通过以下命令修改数据库参数。
- 重启数据库。
- 应用服务器创建自定义路径如:D:\dmdbms_94dm8__x86_win_64sourcessl。
- 拷贝数据库 bin/external_crypto_libs/openssl1.1.1_crypto.dll(Windows 操作系统)或 libopenssl_crypto.so (Linux 操作系统),bin/cyt_java.dll(Windows 操作系统)或 bin/libcyt_java.so(Linux 操作系统)至应用服务器自定义的路径 D:\dmdbms_94dm8__x86_win_64sourcessl 下。
- 调整 url 连接串,添加参数 cipherPath
cipherPath :第三方加密算法动态链接库位置。
- 应用配置 VM option,加载动态库。
至此基于应用层消息包的方式开启 GM 算法的通信加密配置完成。
【问题描述】
mpp 集群本地登录正常,但是全局登录失败报错:“[-6024]:Remote node global login failed.”
【问题解决】
需要检查 mpp 集群中每个节点的运行情况,若存在某一个节点服务异常无法访问的情况,mpp 集群将无法全局模式登录。
【问题描述】
disql 一直登录数据库正常,升级 ssh 服务后,执行 disql 报错:“Segmentation fault (core dumped)”。
【问题分析】
- disql 依赖分析,通过 ldd disql 查看是否有依赖包缺失,和正常机器的 ldd disql 进行对比,对比发现没有缺依赖。
- 通过 strace 命令追踪程序调用,并将结果输出到文件,分析文件里面存在报错。
从上面可以看到调用 /usr/lib64/libcrypto.so.1.1 报错权限拒绝。
【问题解决】
授予 /usr/lib64/libcrypto.so.1.1 755 权限。
授权后,disql 登录数据库正常。
【问题解决】
可通过设置环境变量来实现:
- 配置环境变量。
- 使环境变量生效。
- 验证别名。
【问题描述】
可通过在 dm_svc.conf 文件中增加 keywords 参数来标识。
【问题解决】
以使用关键字 select 作为对象名来举例:
修改 dm_svc.conf 文件,增加 keyword 参数。
创建表 select。
注意:
Keywords 后的列表,需要用英文括号包起来,并且多个值之间使用英文逗号分隔,否则配置无法生效,Keywords 正确配置如下:
Keywords 参数说明:标识用户关键字,所有在列表中的字符串,如果以单词的形式出现在 sql 语句中,则这个单词会被加上双引号。该参数主要用来解决用户需要使用 DM8 中的保留字作为对象名使用的状况。
到此这篇数据库端口访问不了怎么办(数据库端口访问不了怎么办呢)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/sjkxydsj/72169.html