Python3连接MySQL8.0报错处理与连接代码示例

花开有时
花开有时
发布时间:2026-10-11| 2人浏览过
原创

Python3连接MySQL8.0时,因新版默认使用caching_sha2_password认证方式,常导致连接失败。解决方法是通过命令行将用户认证方式改为mysql_native_password,并配合pymysql库编写连接脚本。本文提供具体的MySQL命令修改步骤及Python连接代码示例,帮助快速解决连接报错问题。

Python3连接MySQL8.0报错处理与连接代码示例

在使用Python3连接MySQL 8.0数据库时,开发者经常会遇到连接失败的报错。这主要是因为MySQL 8.0版本默认采用了更安全的认证插件 caching_sha2_password,而旧版的Python MySQL驱动(如pymysql)可能不支持该认证方式,或者配置不当导致连接被拒绝。

解决这一问题的核心思路是将数据库用户的认证方式修改为兼容旧版驱动的 mysql_native_password。以下是具体的处理步骤和Python连接代码示例。

处理步骤

  1. 以管理员身份运行命令提示符(cmd):确保拥有修改数据库配置的权限。
  2. 进入MySQL的bin目录:通过命令行导航到MySQL安装目录下的bin文件夹,例如:
    cd C:\Program Files\MySQL\MySQL Server 8.0\bin
    
  3. 连接MySQL数据库:使用root用户登录数据库,命令如下:
    mysql -uroot -p
    
  4. 修改用户认证方式:执行以下SQL语句,将root用户的认证插件改为 mysql_native_password,并设置密码(示例中密码为 '123456',请根据实际情况修改):
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
    
  5. 刷新权限并退出:执行 FLUSH PRIVILEGES; 使修改生效,然后退出MySQL。

Python连接代码示例

完成上述MySQL配置修改后,可以使用Python的 pymysql 库成功连接数据库。以下是一个完整的连接、查询并关闭连接的示例代码:

# 导入pymysql模块
import pymysql

# 连接database
conn = pymysql.Connect(
  host='localhost',#你的数据库地址
  port=3306,#端口号
  user='root',#用户名
  passwd='123456',#密码
  db='my_database',#数据库名
  charset='utf8')

# 得到一个可以执行SQL语句的光标对象
cursor = conn.cursor()

# 定义要执行的SQL语句
sql = 'select * from student'

# 执行SQL语句
cursor.execute(sql)

#打印执行结果
print(cursor.fetchall())

# 关闭光标对象
cursor.close()

# 关闭数据库连接
conn.close()

通过上述步骤,您可以解决Python3连接MySQL8.0时的认证报错问题,并成功执行数据库操作。请注意,在实际生产环境中,建议使用更安全的密码管理方式,并避免在代码中硬编码密码。

以上就是Python3连接MySQL8.0报错处理与连接代码示例的详细内容,更多关于Python数据库连接的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。