问题描述:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '108@这是ip地址' ([Errno -2] Name or service not known)")
(Background on this error at: https://sqlalche.me/e/14/e3q8)
问题分析:
原密码为:******@108,在sqlalchemy链接数据库时密码中有@等特殊字符,故有上述报错。
解决方案
from urllib import parse
from sqlalchemy import create_engine
user = "root"
password = "******@108"
host = "127.0.0.1"
db = "db_name"
pwd = parse.quote_plus(password)
engine = create_engine(f"mysql+pymysql://{user}:{pwd}@{host}:3306/{db}?charset=utf8")