我正在尝试通过SSH将python程序连接到远程MySQL数据库。
我将Paramiko用于SSH和SQLAlchemy。
这是我到目前为止的内容:
import paramiko
from sqlalchemy import create_engine
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('host', port=port, username='user', password='pass')
engine = create_engine('mysql+mysqldb://user:pass@host/db')
我收到一个错误:
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2003, "Can't connect to MySQL server on 'mcsdev.croft-it.com' (60)")
抱歉,我之前发布了重复的答案。这是为您的问题量身定制的更详尽的答案;)
如果您仍然需要通过SSH连接到远程MySQL数据库,我使用了一个名为sshtunnel的库,该库将包裹和简化了paramiko(sshtunnel的依赖项)的使用。
有了这段代码,我认为您会很高兴:
from sshtunnel import SSHTunnelForwarder
from sqlalchemy import create_engine
server = SSHTunnelForwarder(
('host', 22),
ssh_password="password",
ssh_username="username",
remote_bind_address=('127.0.0.1', 3306))
server.start()
engine = create_engine('mysql+mysqldb://user:[email protected]:%s/db' % server.local_bind_port)
# DO YOUR THINGS
server.stop()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句