gpt4 book ai didi

python 远程数据库连接mysql

转载 作者:行者123 更新时间:2023-11-29 16:50:05 26 4
gpt4 key购买 nike

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

在终端我做了:

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

之后,我可以使用以下设置从 Mac 中的 MySQL Workbench 连接到 Amazon 上的数据库: enter image description here

但是,当我尝试类似:“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_file.pem?

那么,如何在 SQLalchemy 中安排与需要通过 ssh 使用 key 文件访问的服务器的连接?或者这一切都是错误的?谢谢!

最佳答案

在本教程的帮助下解决了这个问题(不容易找到):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)`

关于python 远程数据库连接mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52856176/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com