python - Python sshtunnel 模块无法连接 mysql db
问题描述
我正在尝试使用 python 模块“sshtunnel”通过 ssh 隧道连接 mysql db,但它会引发如下错误:
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'sql_user_name'@'172.45.678.910' (使用密码: YES)
这是我的代码
import mysql.connector
import sshtunnel
with sshtunnel.SSHTunnelForwarder(
(ssh_host,ssh_port),
ssh_username = ssh_username,
ssh_pkey = ssh_pkey_path,
remote_bind_address=(sql_host, sql_port),
local_bind_address=("127.0.0.1",8080)) as server:
mydb = mysql.connector.connect(host=sql_host,user=sql_user_name,password=sql_pwd,db=db_name)
myCursor = mydb.cursor()
我的用户名和密码是正确的,我可以使用相同的凭据和相同的 ssh 主机通过 sequal_pro 成功连接,那么为什么会在这里抛出错误?并且在错误消息中显示的 ssh_host('172.45.678.910') 也不同,我从不在代码中使用这个 ssh_host,在变量“ssh_host”中,ip 不同,我尝试了互联网上所有可用的解决方案,但可以不解决这个问题
解决方案
推荐阅读
- scala - 功能存储库 - 基于 find()/create() 方法构建 get()
- python - 如何使用 python-docx 向 Word 文档添加超链接?
- python - 如果字符串在列表中,如何用它的字母替换 \u0000
- javascript - 随机播放数组在 Javascript 中给出相同的值
- bert-language-model - 无法执行 BioBERT run_factoid.py 程序
- gcc - 长“来回”gcc库路径背后的原因
- api - Shopware 6 Admin API 的文档。什么是可能的命令?
- javascript - 我无法选择值数据
- r - 如何仅保留R中某些列中具有最高值的行
- c++ - 反映文件中的更改,使用预处理器宏读取