我有一台mac电脑,想连接到amazonlinux服务器的mysql数据库。
在候机楼我做到了:
sudo ssh -v -i "key_file.pem" -L 22:localhost:22 ubuntu@public.ip.compute.amazonaws.com
之后,我可以通过以下设置从mysql workbench中的mac连接到amazon上的db:
但是,当我尝试类似于:“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'(使用密码:yes)”)
所以我把localhost改为127.0.0.1:22,但是我找不到在哪里添加我的key\u file.pem?
那么,如何在sqlalchemy中安排到需要通过ssh使用密钥文件访问的服务器的连接呢?还是我做错了?谢谢!
1条答案
按热度按时间nlejzf6q1#
在本教程的帮助下解决了这个问题(不容易找到):https://medium.com/@amirziai/query-your-database-over-an-ssh-tunnel-with-pandas-603ce49b35a1。
因为我使用了sqlalchemy,所以我没有为pandas+mysqldb/mysqlclient做说明,但是: