提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、安装
二、docker安装达梦数据库
官网docker安装达梦数据库,按这个官网步骤来就可以安装成功
其中一些解释:
docker run -d -p 30236:5236 --restart=always --name dm8_test --privileged=true -e PAGE_SIZE=16 -e LD_LIBRARY_PATH=/opt/dmdbms/bin -e EXTENT_SIZE=32 -e BLANK_PAD_MODE=1 -e LOG_SIZE=1024 -e UNICODE_FLAG=1 -e LENGTH_IN_CHAR=1 -e INSTANCE_NAME=dm8_test -v /data/dm8_test:/opt/dmdbms/data dm8_single:dm8_20230808_rev197096_x86_rh6_64
-p 30236:5236: 这个选项指定了容器内部端口和主机端口之间的映射关系。在这里,容器内部的端口是 5236,而主机上的端口是 30236。这样一来,主机上的流量会被导向到容器内部的端口上。
--name dm8_test: 这个选项指定了容器的名称为 dm8_test
-v /data/dm8_test:/opt/dmdbms/data: 这个选项用于将主机上的目录 /data/dm8_test 映射到容器内部的 /opt/dmdbms/data 目录,以便容器可以访问主机上的数据。
dm8_single:dm8_20230808_rev197096_x86_rh6_64: 这是所使用的 Docker 镜像的名称和标签,用于从 Docker Hub 或本地仓库中获取镜像并创建容器。在这里,dm8_single 是镜像名称,dm8_20230808_rev197096_x86_rh6_64 是镜像的标签。
命令行进入达梦数据库
#进入达梦容器里
docker exec -it dm8_test bash
#切换到/opt/dmdbms/bin目录
cd /opt/dmdbms/bin
#然后执行登录命令,./disql 是达梦数据库的命令行工具,用于与数据库进行交互。SYSDBA 是管理员用户名,而 SYSDBA001 是管理员的密码。Docker镜像中数据库默认用户名/密码为 SYSDBA/SYSDBA001
./disql SYSDBA/SYSDBA001
此时如下图:
现在就已经进入sql操控SYSDBA管理员用户达梦数据库的界面
这个目录下的data就是存放的表单的数据,log就是日志
python中连接操控数据库:
import dmPython
import pandas as pd
# 建立数据库连接,注意这个ip是docker主机的ip,因为docker默认会绑定其主机的一张网卡
conn = dmPython.connect(user='SYSDBA', port=30236, server='服务器ip', password='用户密码')
# 获取游标
cursor = conn.cursor()
conn.commit() # 记得要提交你的更改
# 关闭游标
cursor.close()
# 关闭连接
conn.close()
四、flask后端连接达梦
把这个config加载到app就行
class Config:
# 默认数据库(主数据库)
SQLALCHEMY_DATABASE_URI= 'dm+dmPython://用户名:密码@ip:端口'
三、遇到的bug
一切装好之后发现flask端通过SQLAlchemy还是连接不上达梦,cmd终端python环境下输入pip list观察包如下:
包已经正确安装并版本号一致!而且观察到vs code python环境和cmd终端python环境一致。
在vs pip list发现:
vs终端里找不到方言SQLAlchemy_dm,就很奇怪,估计是卡bug了?不太懂
之后通过cd到那个方言SQLAlchemy_dm路径,直接安装在了vs所配python环境下,成功连接!