kalren
2017-12-18 09:02
采纳率: 100%
浏览 2.6k

python3 通过ssh链接数据库报错10054

图片说明
如图,链接数据库是可以的,但是到执行sql报错。
pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query ([WinError 10054] 远程主机强迫关闭了一个现有的连接。)')

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

12条回答 默认 最新

  • 牧飞 2017-12-20 01:02
    已采纳

    从 print(conn)[45]行 到 conn.close()[55]行 全部右移一个tab即可;

    点赞 评论
  • oyljerry 2017-12-18 09:13

    看看是不是有防火墙等,不允许你连接MySQL的端口等。

    点赞 评论
  • kalren 2017-12-18 09:19

    我本地的navicat是可以链接的

    点赞 评论
  • ss_198923 2017-12-18 09:43

    防火墙的可能性比较大

    点赞 评论
  • kalren 2017-12-18 10:16

    希望有个帮我远程看看 QQ 977756434

    点赞 评论
  • Max的爸爸 2017-12-18 10:23

    你的s(sql)没有在execute里面?

    点赞 评论
  • Max的爸爸 2017-12-18 10:55

    网上搜到的,希望对你有用:
    http://bbs.fishc.com/thread-89248-1-1.html

    点赞 评论
  • lBearmax 2017-12-18 12:57

    兄弟,看看你的sql语言有没有问题,远程连接是不是有问题

    点赞 评论
  • Q544471255 2017-12-19 04:51

    这是权限原因把,是数据库那边报错的,

    参考:

    https://github.com/PyMySQL/PyMySQL/

    点赞 评论
  • 大蛇王 2017-12-19 05:20

    ssh没用过无法帮你解答,你用pymysql试试,如果不行应该事防火墙或权限问题

    python3版本

    import pymysql
    conn=pymysql.connect(host='172.16.16.195', #主机名
    user='root', #用户名
    passwd='winmysql', #密码
    port=3306, #端口号
    charset='utf8', #编码格式
    db='ipproxy') #数据库名
    cursor=conn.cursor()
    data=cursor.execute("select * from free_ipproxy") #SQL语句 ,查询需要到处内容, proxy是列表名
    datas=cursor.fetchmany(data) #取出得到的数据

    datas=cursor.fetchall()#取出cursor得到的数据

    for i in datas:
    print(i)
    cursor.close()
    conn.close()

    点赞 评论
  • ipple1986 2017-12-19 05:35

    show databases;这个命令要有比较高的权限哦。

    点赞 评论
  • hcc_cheng 2019-07-25 14:56

    with ssh这个上面的问题
    需要你,赋值, tunnel = ssh(。。。)
    tunnel.start()

    最后记得关闭tunnel.stop()
    tunnel.close()

    点赞 评论

相关推荐 更多相似问题