博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql用户口令中含有特殊字符@的情况下,如何正确链接数据库
阅读量:2109 次
发布时间:2019-04-29

本文共 624 字,大约阅读时间需要 2 分钟。

在Python语句中,使用create_engine连接数据库,相关代码如下:

dbConnect=create_engine('mysql+pymysql://'+userName+":"+password+"@"+dbHost+":"+dbPort+"/"+dbName+"?charset=utf8")

结果因为password中有特殊字符导致报错,无法正常连接数据库。报错信息如下

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on 'xxxx@localhost' ([Errno 11003] getaddrinfo failed)")

实际上上面提示信息里面的xxxx@localhost,前面的xxxx代表的是password中位于@符号之后的部分,所以导致连接数据库报错。实际上需要对password进行一定的处理,相关代码如下:

from urllib.parse import quote_plus as urlquotedbConnect=create_engine(f'mysql+pymysql://{userName}:{urlquote(password)}@{dbHost}:{dbPort}/{dbName}?charset=utf8')

至此问题解决。

转载地址:http://ljyef.baihongyu.com/

你可能感兴趣的文章
嵌入式 知识积累 (二) 之 三个学习阶段
查看>>
嵌入式 知识积累(三) 之 基本技能
查看>>
嵌入式 知识积累(四) 之 硬件开发的基本过程
查看>>
嵌入式 知识积累(五)之硬件工程师具备基本技能
查看>>
中小型园区网络的设计与实现 (一)
查看>>
别人的难题,就是你的价值。
查看>>
中小型园区网络的设计与实现 (二)
查看>>
中小型园区网络的设计与实现 (三)
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
01. 开篇:组建小型局域网
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
giuhub搭建及常用操作
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>