【发布时间】:2020-05-26 03:04:42
【问题描述】:
我几天来一直在搜索 SO 和网络,试图解决这个问题。关于 SO 有很多类似的问题,但它们似乎都不是我目前正在处理的问题。我正在尝试连接到 python 中的远程 MySQL 数据库以使用 pandas.to_sql 功能更新表。我能够毫无问题地连接 MySQL 工作台。我也可以使用以下代码进行连接:
self.conn = mysql.connector.connect(host= remote_host,user= db_user, password=db_pass)
这使我可以在 python 中很好地查询数据库。但是,为了使用 pandas.to_sql,我需要使用 sqlalchemy 创建和引擎。我尝试了多个不同的端口,甚至关闭了端口。这是我尝试过的代码:
self.engine = create_engine("mysql+mysqlconnector://db_user:db_pass@remote_host:3306/db_name")
他们都给我以下错误
ProgrammingError: (mysql.connector.errors.ProgrammingError) 1045 (28000): Access denied for user 'db_user'@'c-67-176-125-82.hsd1.co.comcast.net' (using password: YES) (Background on this error at: http://sqlalche.me/e/f405)
我可以使用create_engine 连接到本地数据库,但不能连接到远程数据库。
我已尝试在服务器上重新启动 MySQL,我已将所有权限授予用户并刷新了服务器上的所有权限。我什至尝试使用 root 用户和密码,但没有成功。
我仔细检查了用户名和密码,当然知道它们是正确的,因为它们是我在 MySQL Workbench 中使用的,而且当我只使用 mysql.connector.connect 时,它们是正确的
我什至尝试卸载 mysql-connector-python 并重新安装它。
任何帮助将不胜感激。
【问题讨论】:
-
我认为这是您需要与数据库管理员讨论的问题。看起来您的权限受到限制。我不确切知道 MySQL 是如何工作的,但我假设连接字符串试图建立一个您无权建立的连接
-
实际密码是否包含任何可能混淆问题的字符(空格、
:、/、@、?、&、...)和可能要求字符串是 URL 编码的? -
密码中有$,),&,[,{,%,]等符号。 URL 编码有效!如果您想发布答案,我会接受!非常感谢!
标签: python mysql sqlalchemy