繁体   English   中英

python远程数据库连接到mysql

[英]python remote database connect to mysql

我有一台Mac计算机,并想连接到Amazon Linux服务器的mysql数据库。

在终端我做了:

sudo ssh -v -i "key_file.pem" -L 22:localhost:22 ubuntu@public.ip.compute.amazonaws.com

之后,我可以使用以下设置从Mac在MySQL Workbench中从Mac连接到Amazon上的数据库: 在此处输入图片说明

但是,当我尝试类似“ mysql -h localhost --protocol = TCP -u root -p”或在SQLalchemy中尝试时:

engine = create_engine("mysql+mysqldb://root:password_mysql_amazon@localhost/db?host=localhost?port=3306")

我收到一个错误:(1045,“用户'root'@'localhost'的访问被拒绝(使用密码:是)”)

所以我将本地主机切换为127.0.0.1:22,但是后来找不到添加key_file.pem的位置?

那么,如何在SQLalchemy中安排与该服务器的连接,该服务器需要通过ssh通过密钥文件进行访问? 还是这一切都错了? 谢谢!

在本教程的帮助下(不容易找到)解决了该问题: https : //medium.com/@amirziai/query-your-database-over-an-ssh-tunnel-with-pandas-603ce49b35a1

自从我使用SQLalchemy以来,我没有对pandas + MySQLdb / mysqlclient做说明,但是:

from sshtunnel import SSHTunnelForwarder
server = SSHTunnelForwarder(
        (host, 22),
        ssh_username=ssh_username,
        ssh_private_key=ssh_private_key,
        remote_bind_address=(localhost, 3306))

server.start()
engine = create_engine(
        'mysql+mysqldb://root:db_pass@127.0.0.1:%s/db' % server.local_bind_port)`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM