使用Python通过SSH连接到MySQL

2024-10-03 09:14:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一些帮助,使用python脚本将表从桌面PC添加到web服务器上的现有MySQL数据库(db名称DB2639162)。我写了以下脚本(创建_数据库)公司名称:

import MySQLdb
from sshtunnel import SSHTunnelForwarder
ssh_pwd=''
ssh_usr=''
mysql_pwd=''
mysql_usr=''
with SSHTunnelForwarder(('ssh.strato.de', 22),
                        ssh_password=ssh_pwd, ssh_username=ssh_usr,
                        remote_bind_address=('rdbms', 3306)) as server:
    print 'Server connected via SSH!'

    db1 = MySQLdb.connect(host='127.0.0.1',
                      port=server.local_bind_port,
                      user=mysql_usr,
                      passwd=mysql_pwd,
                      db='DB2639162')
    cursor = db1.cursor()
    sql = 'CREATE TABLE mydata'
    cursor.execute(sql)
    db1.close()

但是不幸的是,这个脚本不起作用,我得到了下面的输出。显然,SSH连接可以成功建立,但是访问数据库失败。在

^{pr2}$

另外,用户名和密码都很好,因为终端命令工作正常,并允许我访问MySQL数据库。在

ssh ssh_usr@ssh.strato.de
mysql -h rdbms -u mysql_usr -p DB2639162

提前谢谢你


Tags: import脚本名称数据库dbusrpwdmysql
1条回答
网友
1楼 · 发布于 2024-10-03 09:14:09

答案就在错误消息中:

2016-09-18 11:02:19,291| ERROR | Secsh channel 0 open FAILED: open failed: Administratively prohibited

在服务器上的shell会话中运行MySQL命令行客户端和设置端口转发/隧道是完全不同的事情。你能做一件事并不意味着你能做另一件事。在

此服务器显然禁止端口转发/隧道(“管理禁止”)。你需要一个不同的方法。在

相关问题 更多 >