jupyter上python通过ssh链接mysql数据库出现报错AttributeError: X962

博主在Jupyter上通过跳转机连接MySQL数据库时遇到AttributeError:X962。最初认为是Cryptography多版本导致,但卸载后问题依旧。经研究发现是Cryptography 37版本的问题,改用36版本后问题解决。安全考虑和网络稳定性是使用跳转机链接数据库的原因。此问题源于Python 3.6与高版本Cryptography的不兼容,降级Cryptography版本成为解决之道。
部署运行你感兴趣的模型镜像

背景:今天在jupyter上通过跳转机链接mysql数据库如下图(具体操作流程不再赘述,上一篇博客中有写),运行发现报错如下:

在这里插入图片描述
报错如下:

AttributeError: X962

起初我以为是因为依赖包里的Cryptography安装了多个版本导致的,但是卸载了以后发现,问题依然存在。然后经过百度和谷歌的一大堆操作候发现,是Cryptography这个依赖包的版本问题导致的,原本我安装的是37版本,然后进行了下面的一系列操作。


首先:pip uninstall Cryptography卸载版本为37的依赖包

然后:pip install Cryptography=36,安装一个36版本的依赖包

最后:重启jupyter程序,再次尝试运行程序代码,发现问题解决

分析:先讲一下为什么需要借助跳转机链接数据库,我自己的分析是处于两个方面的原因,当然大家可以补充和指正啊,一个原因就是处于安全的考虑,通过跳转机链接,可以避免直接链接数据库带来的安全上的暴露(防患于未然),另一个原因是,因为公司内的网络不稳定,重启或者网络出现断开以后,用mysql直接连接,需要在阿里云上修改一下安全组中mysql数据库的ip地址,这样就会出现各种不必要的麻烦。出现问题的原因在于,我本人用的是python3.6版本,不知道什么时候装了Cryptography的2.2和37版本(可能是研究加密的时候),具体什么区别,没有做深入的研究,可能是因为Cryptography版本和python版本上的冲突,就导致了上述问题的存在,所以在更换了Cryptography版本以后问题得到解决。
以上分析只是自己在有限的认知情况下做出的,如有不准确的地方欢迎大家留言指正。

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Traceback (most recent call last): File "C:\Users\Administrator\Desktop\MyFiles\Python\tkinterProject\20250630\main.py", line 1087, in <module> switch_to_betaWin() ~~~~~~~~~~~~~~~~~^^ File "C:\Users\Administrator\Desktop\MyFiles\Python\tkinterProject\20250630\main.py", line 304, in switch_to_betaWin BetaWin(main_frame) ~~~~~~~^^^^^^^^^^^^ File "C:\Users\Administrator\Desktop\MyFiles\Python\tkinterProject\20250630\main.py", line 484, in __init__ self.server = SSHTunnelForwarder( ~~~~~~~~~~~~~~~~~~^ # 跳板机IP,跳板机端口号 ^^^^^^^^^^^^^^^^^^^^^^^^ ...<3 lines>... remote_bind_address=('127.0.0.1', 3306) # 指定远程数据库的地址和端口 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "C:\Users\Administrator\Desktop\MyFiles\Python\tkinterProject\.venv\Lib\site-packages\sshtunnel.py", line 966, in __init__ (self.ssh_password, self.ssh_pkeys) = self._consolidate_auth( ~~~~~~~~~~~~~~~~~~~~~~^ ssh_password=ssh_password, ^^^^^^^^^^^^^^^^^^^^^^^^^^ ...<4 lines>... logger=self.logger ^^^^^^^^^^^^^^^^^^ ) ^ File "C:\Users\Administrator\Desktop\MyFiles\Python\tkinterProject\.venv\Lib\site-packages\sshtunnel.py", line 1148, in _consolidate_auth ssh_loaded_pkeys = SSHTunnelForwarder.get_keys( logger=logger, host_pkey_directories=host_pkey_directories, allow_agent=allow_agent ) File "C:\Users\Administrator\Desktop\MyFiles\Python\tkinterProject\.venv\Lib\site-packages\sshtunnel.py", line 1093, in get_keys 'dsa': paramiko.DSSKey, ^^^^^^^^^^^^^^^ AttributeError: module 'paramiko' has no attribute 'DSSKey'. Did you mean: 'RSAKey'?
08-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值