在使用 PyCharm 集成开发环境进行 Python 开发时,经常会遇到使用 pymysql 库连接 MySQL 数据库时出现的错误,本文将针对 PyCharm 使用 pymysql 报错的问题进行详细解析,并提供解决方案。

报错现象
在 PyCharm 中,当尝试使用 pymysql 连接 MySQL 数据库时,可能会遇到以下错误信息:
pymysql.err.OperationalError: (1698, "Access denied for user 'username'@'localhost' (using password: YES)")
错误原因分析
- 用户名或密码错误:这是最常见的错误原因,检查输入的用户名和密码是否与数据库中配置的信息一致。
- 权限不足:即使用户名和密码正确,如果用户没有足够的权限访问数据库,也会出现此错误。
- 数据库配置问题:数据库地址、端口号或数据库名称配置错误也可能导致连接失败。
- 驱动问题:pymysql 驱动版本不兼容或损坏也可能引发错误。
解决方法
检查用户名和密码
确认输入的用户名和密码是否正确,可以在 MySQL 数据库管理工具中验证用户权限。
检查权限
如果用户名和密码正确,但仍然报错,则需要检查数据库用户权限,在 MySQL 中,可以使用以下命令:

GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost' IDENTIFIED BY 'password';
执行后,使用 FLUSH PRIVILEGES; 命令刷新权限设置。
检查数据库配置
确保数据库地址、端口号和数据库名称配置正确,pymysql 连接字符串格式如下:
conn = pymysql.connect(host='localhost', port=3306, user='username', password='password', database='database_name')
检查驱动版本
如果怀疑是驱动问题,可以尝试更新 pymysql 驱动到最新版本,使用 pip 安装或升级 pymysql:

pip install --upgrade pymysql
FAQs
为什么我的数据库连接总是断开?
解答:数据库连接断开可能是因为网络问题、数据库服务异常或连接超时,请检查网络连接,确认数据库服务运行正常,并适当调整连接超时时间。
我使用的是 PyCharm 的数据库工具,为什么无法连接到 MySQL?
解答:PyCharm 的数据库工具可能需要单独配置连接信息,请确保在 PyCharm 的数据库工具中正确配置了数据库地址、端口号、用户名、密码和数据库名称,如果问题仍然存在,可以尝试手动使用 pymysql 连接数据库进行测试。