记录一下麒麟3.0内网安装python通过jdbc连接达梦6数据库

news/2024/9/29 1:20:45

麒麟3.0基于Red Hat 4.1.2-42,此版本可以编译python3.8.3,但是内网无法安装libffi-dev,导致无法安装JPype1和JayDeBeApi,所以改用python2.7.18

1、安装python2.7.18

https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz

# 解压
tar -zxvf Python-2.7.18.tgz
# 切换到新的目录下
cd 2.7.18/
# 执行configure并且设置新python要装在的位置
./configure --prefix=/usr/local/python2
# 清除上次的make命令所产生的object文件(后缀为".o"的文件)及可执行文件
make clean
# 根据Makefile文件编译源代码、连接、生成目标文件、可执行文件
make
# 将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录
make install

2、 安装setuptools-42,JPype1和JayDeBeApi基于该依赖

https://files.pythonhosted.org/packages/ab/41/ab6ae1937191de0c9cbc115d0e91e335f268aa1cd85524c86e5970fdb68a/setuptools-42.0.0.zip

 

# 解压,也可以在windows下解压
uzip setuptools-42.0.0.zip
# 切换到新的目录下
cd setuptools-42.0.0
# 安装
python setup.py install

3、安装JPype1-0.6.3,高版本的JPype1麒麟环境无法编译通过,JayDeBeApi基于JPype1

https://files.pythonhosted.org/packages/c4/4b/60a3e63d51714d4d7ef1b1efdf84315d118a0a80a5b085bb52a7e2428cdc/JPype1-0.6.3.tar.gz

# 解压
tar -zxvf JPype1-0.6.3.tar.gz
# 切换到新的目录下
cd JPype1-0.6.3
# 安装
python setup.py install

4、安装JayDeBeApi-1.2.3

https://files.pythonhosted.org/packages/5c/8c/f27750106bf1fba33f92d83fb866af164179f7046495bc5a61fae26d9475/JayDeBeApi-1.2.3.tar.gz

# 解压
tar -zxvf JayDeBeApi-1.2.3.tar.gz
# 切换到新的目录下
cd JayDeBeApi-1.2.3
# 安装
python setup.py install

5、配置java环境变量,下载JDK,解压导入如下环境变量,JayDeBeApi基于java运行环境

export JAVA_HOME=/usr/local/jdk1.8.0_271 
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

6、测试连接

#导入jaydebeapi
import jaydebeapi
#配置dm数据库链接127.0.0.1是数据库IP,4631是数据库端口,test是数据库名
url = 'jdbc:dm://127.0.0.1:4631/test'
#用户名
user = 'DBA'
#密码
password = 'DBA'
#驱动名,默认
dirver = 'dm.jdbc.driver.DmDriver'
#达梦jdbc驱动,你服务器jar位置
jarFile = '/opt/dmdbms/jar/DmJdbcDriver.jar'
#查询sql语句,tes.test.sys_user是数据库名.模式名.表名
sqlStr = 'select count(1) from test.test.sys_user'
#创建数据库连接,传入参数
conn = jaydebeapi.connect(dirver, url, [user, password], jarFile)
#创建游标
curs=conn.cursor()
#执行sql语句
curs.execute(sqlStr)
#接收执行结果
result=curs.fetchall()
#输出执行结果
print(result)
#关闭游标
curs.close()
#关闭数据库连接
conn.close()

7、遇到的文件

普通用户导入jaydebeapi无此模块,在root用户下可以import,jaydebeapi、JPype1、setuptools安装在/usr/local/python2.7/lib/python2.7/site-packages下,权限如下图,本人在另外一台服务安装权限却只有700,导致普通用户下无法导入模块,请检查模块是有访问权限,包括JPype1子目录权限

或者在python代码中,这种方法比较麻烦

import syssys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/JPype1-0.6.3-py2.7-linux-x86_64.egg')sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/JayDeBeApi-1.2.3-py2.7.egg')sys.path.append('/usr/local/python2.7/lib/python2.7/site-packages/setuptools-42.0.0-py2.7.egg')

最后希望我的文章能给予你思路。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/47522.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

生成SSL证书

生成SSL证书SSL 是一种加密协议,用于在网络通信中提供数据的保密性和完整性。它使用公钥和私钥来建立安全的连接,并对传输的数据进行加密和解密,以防止未经授权的访问和篡改。根据文章操作,生成以下四个文件用于存储与 SSL 相关的密钥、证书和信任的根证书。client.keystor…

Flink状态(二)

Flink提供了不同的状态存储方式,并说明了状态如何存和存储在哪里。 状态可以被存储在Jvm的堆和堆外。根据状态存储方式的不同,Flink也能代替应用管理状态,意思是Flink能够进行内存管理(有必要的时候,可能会溢出到硬盘),允许应用保存非常大的状态。默认情况下,在配置文件fli…

服务器数据恢复成功案例

一、服务器数据恢复描述 需要进行数据恢复的服务器为OceanStor S6800T,服务器硬件配置情况为15块磁盘组成一组80T大小的raid5阵列,阵列划分为两个lun、三个分区。服务器重装系统后发现磁盘分区丢失了一个,需要进行服务器数据恢复。二、服务器数据备份 服务器数据恢复第一步需…

使用 TensorRT C++ API 调用GPU加速部署 YOLOv10 实现 500FPS 推理速度——快到飞起!!

NVIDIA TensorRT ™ 是一款用于高性能深度学习推理的 SDK,包含深度学习推理优化器和运行时,可为推理应用程序提供低延迟和高吞吐量。YOLOv10是清华大学研究人员近期提出的一种实时目标检测方法,通过消除NMS、优化模型架构和引入创新模块等策略,在保持高精度的同时显著降低…

学习笔记483—如何关闭 Mac Office 更新提示

Mac Office 总是弹出Microsoft AutoUpdate更新提示怎么办? 问题:Mac电脑安装 Office 2021 Mac版后,老是弹出更新提示(Microsoft AutoUpdate),关掉之后再开机又会弹出来,怎么办? 解决方法:用 App Cleaner 把Mac Office 更新程序 Microsoft AutoUpdate 直接卸载,这样就…

Head

知足常乐!

oracle partition by 语法

参考链接:https://www.cnblogs.com/xfeiyun/p/17765225.html 数据准备 建表 create table xzq_person ( --行政区人口表province varchar(10),city varchar(10),persons number(10) );插入数据 insert into xzq_person values (江苏,苏州,10); insert into xzq_person v…

机器学习day04

从机器学习过渡到深度学习,虽然都是初步的就是了……study