【原因】
db_password密码中含有特定字符,比如含有@ %,则把密码部分进行URL编码
【解决办法】
from urllib.parse import quote_plus as urlquote
db_passw='f%%!kdku9fTn3r'
#在连接前将包含特殊符号的密码转码再链接
url='mysql+mysqlconnector://<username>:%s@<ip>:<port>/<db_name>?charset=utf8'%urlquote(db_passw)
engine = create_engine(url)
很奇怪的是,我之前一直用的这个密码,并没有报错。
现在却突然这样,真是奇怪,难道是开发环境所使用的依赖包有升级导致的吗?(所以有经验既是一件好事-做过的事做的更快了,有时候也会耽误事-盲目相信之前的判断-不能以全新的视角看待发现的问题。因为之前一直都能连接通,所以我一直没有考虑可能是真的密码出了问题,也不知道该往什么方向去排查问题,真是很是头疼了一会儿。)
总之,这个问题解决了还是很开心的
超感谢下面2位作者为了提供了解决问题的思路
参考文章: