MySQL连接器连接失败求助:SQLAlchemy报OperationalError错误
SQLAlchemy连接MySQL失败的解决办法
问题原因
你的连接字符串解析出错了——密码里的@符号被当成了用户名/密码与主机地址的分隔符,导致SQLAlchemy把主机解析成了123@35.187.158.251,这显然不是正确的服务器地址,所以出现了getaddrinfo failed的错误。
解决方法
方法1:URL编码密码中的特殊字符
将密码里的@替换成URL编码%40,修改后的连接字符串如下:
db_connection_str = 'mysql+pymysql://beat_dq_readonly:Gspann%40123@35.187.158.251/beat_results_dev'
方法2:使用SQLAlchemy URL构造器(推荐)
避免手动拼接字符串出错,用官方提供的URL对象来构建连接:
import pdvega import pandas as pd from sqlalchemy import create_engine, URL url_object = URL.create( "mysql+pymysql", username="beat_dq_readonly", password="Gspann@123", host="35.187.158.251", database="beat_results_dev" ) db_connection = create_engine(url_object) df = pd.read_sql('SELECT * FROM vw_dv_count_rpt', con=db_connection)
内容的提问来源于stack exchange,提问作者Vaibhav Yadav
相关产品推荐
相关产品推荐

