达梦数据库连不上(达梦数据库连接失败)

达梦数据库连不上(达梦数据库连接失败)目录 1 达梦数据库的安装 win 图形化工具 2 DM 管理工具的基本使用 表空间的建删 用户的管理 模式的建删 表的创建 删除 查看 3 Django 项目接入 dm 数据库 settings 的 database 配置 解释器中的相关包 dmPython 的编译 环境准备 正式编译 验证成功 测试输入 运行后端 运行前端 进入页面实操 2 DM 管理工具的基本使用 值得注意

大家好,我是讯享网,很高兴认识大家。



目录

  • 1.达梦数据库的安装(win、图形化工具)
  • 2. DM 管理工具的基本使用:
  • 表空间的建删
  • 用户的管理
  • 模式的建删
  • 表的创建、删除、查看
  • 3. Django 项目接入 dm 数据库
  • settings的database配置
  • 解释器中的相关包
  • dmPython的编译※
  • 环境准备
  • 正式编译
  • 验证成功
  • 测试输入
  • 运行后端
  • 运行前端
  • 进入页面实操

2. DM 管理工具的基本使用:

值得注意,达梦软件的观感与我们常使用的navicat等主流数据库管理软件,不管是视图呈现上还是具体操作逻辑上大不相同;

若只需连接至自己工程可跳过基本概念的介绍;

抽象导图:

达梦连接导mysql失败 达梦数据库连接不上_表空间
讯享网

表空间的建删

“表空间”理解为文件夹,默认会自动存在以下表空间:

  • SYSTEM:系统表空间,存放数据字典信息,用户不可以在这个表空间下创建表和索引
  • ROLL:回滚表空间,存放回滚数据,是由达梦数据库自动维护,用户无需干预。该表空间用来存放事务运行过程中执行 DML 操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。
  • TEMP:临时表空间,存放临时数据。当用户的 SQL 语句需要磁盘空间来完成某个操作时,达梦数据库会从 TEMP 表空间分配临时段。如果创建索引、无法在内存中完成排序操作时、SQL 语句中间结果集以及用户创建的临时表等都会用到 TEMP 临时表空间。
  • MAIN表空间:默认表空空间,达梦数据库系统默认的表空间,表空间在初始化库的时候,就会自动创建一个大小为 128M 的数据文件 MAIN.DBF,如果用户创建数据对象不指定存储位置,默认存放到main

(表空间相当于文件夹,这里给出命令行 / 图形化创建方法)

打开“DM服务查看器”(此软件和管理工具一同绑定被安装),确定DmService是开启的:

达梦连接导mysql失败 达梦数据库连接不上_达梦连接导mysql失败_02

打开DM管理工具并输入自己的用户名及其口令以登录、连接至LOCALHOST(SYSDBA)服务

达梦连接导mysql失败 达梦数据库连接不上_数据库_03

sql的使用:

达梦连接导mysql失败 达梦数据库连接不上_数据库_04

创建一个用户来管理(绑定)该个表空间,关于“用户”请看下一内容

用户的管理

与表空间同理,默认哪些用户 以及 如何通过sql命令行创建用户

  • SYS-内置管理账号,不能登录数据库
  • SYSDBA-管理员
  • SYSAUDITOR-审计员
  • SYSSSO-安全版特有,安全员

注意:在创建用户时,以图形化方法举例,是可以指定其管理哪个表空间的

达梦连接导mysql失败 达梦数据库连接不上_数据库_05

模式的建删

(模式相当于数据库,里面创建并存放表)

也是要注意与用户的绑定;“配置登录默认模式、“模式切换“,都是某一个用户自己建立的多个模式之间切换,模式和用户不存在授权的概念,也不能授权,只有属于和不属于;同时,我们所有的模式切换,是不能跨到其他用户下面去的。

达梦的用户和模式是什么?

达梦的用户,是数据库实例里一个逻辑概念。它是一个操作空间、一个逻辑空间,在这个空间内,可以建立表结构,部署应用。

比如说,一个数据库实例上,我们新建2个用户A and B,每个用户独立部署一个应用系统。

至此,我们把达梦理解成一个单用户单模式的数据库即可,但:

1)实际上,达梦上面,承载业务逻辑的不是用户,而是模式,我们在新建用户时,系统会自动新建一个和用户名相同的模式,我们所有的操作,都是在“模式”中。
2)而且,达梦一个用户,是可以对应多个模式的(当我们要实现,在一个连接中,切换模式,那么就必须使用单用户多模式的方法)

表的创建、删除、查看

达梦连接导mysql失败 达梦数据库连接不上_达梦连接导mysql失败_06

删除此表同理,右键并勾选 “级联删除” ;查看则是右键并 “浏览数据”

3. Django 项目接入 dm 数据库

settings的database配置

NAME给到数据库内建表的表名,USER、PASSWORD按在管理工具初始设定参数设置,HOST使用本地,PORT指定默认。

解释器中的相关包

笔者所安装且认为必须有的依赖有以下:

Django 3.2.11

django-dmpython 3.0.1

其余与项目有关所需的包可下载文末源码后自行补充

dmPython的编译※

简介:dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。使用 Python 连接达梦数据库时需要安装 dmPython。安装完 DM 数据库软件后,在安装路径下的 drivers 目录下,可以找到 dmPython 的驱动源码,由于提供的是源码,需要自己编译安装,下面在 Windows 11下编译安装 dmPython。

环境准备

安装 DM 数据库软件并设置 DM_HOME 环境变量

达梦连接导mysql失败 达梦数据库连接不上_Python_07

安装编译工具 Microsoft Visual C++ Build Tools

由微软官方下载Visual Studio:

在 Visual Studio 中安装 C 和 C++ 支持 | Microsoft Learn

选择图示安装项,等待所需组件装载完成即可,后续不用手动再配置

达梦连接导mysql失败 达梦数据库连接不上_数据库_08

正式编译

在由浏览器安装包所下载到本地的达梦数据库应用位置,找到drivers目录,

进到dmPython源码的目录(命令提示符cd D:dmdbmsdriverspythondmPython 或 直接在dmPython文件夹内右键进入终端)执行:

达梦连接导mysql失败 达梦数据库连接不上_表空间_09

上图安装结束后使用 再次确保有无 此包

在终端进入python找接下来另一个所需的路径:

执行结果中找到 类似 “D:UsersAdminAppDataLocalProgramsPythonPython39libsite-packagesdmpython-2.3-py3.9-win-amd64.egg” 的位置,这个被搜索出来的路径存在于你的环境最初安装Python的目录之中。

达梦连接导mysql失败 达梦数据库连接不上_表空间_10

验证成功

任取一处终端内,先进入python,编写以下测试代码:

达梦连接导mysql失败 达梦数据库连接不上_Python_11

如图输出了你所设置的数据库的用户名则说明编译成功

在执行到此步的时候:

import dmPython

conn = dmPython.connect(user=‘SYSDBA’, password=‘SYSDBA’, server=‘192.168.201.118’, port=5236)

dmPython.Database

Error: [CODE:-70028]创建SOCKET连接失败 The above exception was the direct cause of the following exception: Traceback (most recent call last): File “”, line 1, in SystemError: <class ‘dmPython.Connection’> returned a result with an exception set

错误消息 “[CODE:-70028]创建SOCKET连接失败” 表明连接到数据库时发生了套接字连接问题。这可能是由于以下原因之一引起的:

  1. 网络问题:可能存在网络连接问题,导致无法连接到指定的数据库服务器。请确保服务器地址和端口号是正确的,而且你的计算机能够访问数据库服务器。
  2. 数据库服务器未启动:如果数据库服务器未运行,你将无法连接到它。确保数据库服务器已经启动并正在运行。
  3. 防火墙或安全设置:防火墙或安全设置可能会阻止连接。检查你的防火墙设置,确保允许从你的计算机连接到指定端口的流量。
  4. 端口被占用:端口 5236 是否被其他应用程序占用?如果是的话,你可以尝试更改端口号或确保释放该端口。
  5. 数据库配置错误:检查数据库服务器的配置,确保它监听指定的 IP 地址和端口号。还要确保允许远程连接。
  6. dmPython 版本不兼容:确保你使用的 dmPython 版本与数据库服务器版本兼容。有时,不匹配的版本可能导致连接问题。

针对这些问题,你可以尝试以下解决措施:

  • 检查网络连接,确保你的计算机可以与数据库服务器通信。
  • 确保数据库服务器正在运行,并且监听了指定的 IP 地址和端口。
  • 检查防火墙设置,确保允许流量通过指定的端口。
  • 如果可能,尝试更改端口号,以确保没有冲突。
  • 确保使用的 dmPython 版本与数据库服务器版本兼容。
测试输入

测试前端数据输入是否传进dm数据库

运行后端

达梦连接导mysql失败 达梦数据库连接不上_Python_12

运行前端

达梦连接导mysql失败 达梦数据库连接不上_数据库_13

进入页面实操

达梦连接导mysql失败 达梦数据库连接不上_数据库_14

小讯
上一篇 2025-05-02 12:19
下一篇 2025-06-08 18:38

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/164203.html