【问题标题】:Why am I receiving this error-no module named STRINGIO when trying to connect to MYSQL DB using sshtunnel为什么我在尝试使用 sshtunnel 连接到 MYSQL DB 时收到此错误 - 没有名为 STRINGIO 的模块
【发布时间】:2020-04-07 07:29:12
【问题描述】:

我正在尝试通过 SSH 隧道连接到我的 MYSQL 数据库;但是我不断收到错误-名为 stringIO 的 mo 模块。

这是我的代码:

import pymysql
import paramiko
import pandas as pd
import numpy as np
from paramiko import SSHClient
from sshtunnel import SSHTunnelForwarder
from os.path import expanduser
import paramiko
import StringIO    

    import pymysql
    import paramiko
    import pandas as pd
    import numpy as np
    from paramiko import SSHClient
    from sshtunnel import SSHTunnelForwarder
    from os.path import expanduser
    import paramiko
    import StringIO


    my_key = """
    -----BEGIN RSA PRIVATE KEY-----
    content
    -----END RSA PRIVATE KEY-----

    """

    pkey = paramiko.RSAKey.from_private_key(StringIO.StringIO(my_key))
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname='my_ip_address', username='my_username', pkey=pkey)

    ssh.close()

我已经尝试了所有方法,如果有人对我收到此错误的原因有任何建议或想法,我将不胜感激。

【问题讨论】:

    标签: python ssh airflow ssh-tunnel


    【解决方案1】:

    在 Python3 中,StringIO 类已移至 io 模块中。所以,试试:

    import io
    
    io.StringIO(my_key)
    

    https://docs.python.org/3/library/io.html#io.StringIO

    【讨论】:

    • 现在我收到 paramiko.ssh_exception.SSHException 错误:base64 解码错误:填充不正确。你知道为什么会这样吗?
    • 我对 paramiko 不是很熟悉,所以对我所说的一切持保留态度。谷歌搜索你的错误带来了这个潜在的线索:gist.github.com/perrygeo/ee7c65bb1541ff6ac770。试试看。
    • @Coder123 如果您已经解决了原来的问题并遇到了不同的问题,您应该提出一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多