【Python】已解决:pymysql.err.OperationalError:(2003 “Can’t connect to MySQL server on ‘localhost’ ([WinEr

简介: 【Python】已解决:pymysql.err.OperationalError:(2003 “Can’t connect to MySQL server on ‘localhost’ ([WinEr

已解决:pymysql.err.OperationalError:(2003 “Can’t connect to MySQL server on ‘localhost’ ([WinError 10061] 由于计算机积极拒绝,无法连接。)”

一、分析问题背景

在使用Python的pymysql库连接本地MySQL数据库时,有时会遇到“pymysql.err.OperationalError:(2003 “Can’t connect to MySQL server on ‘localhost’ ([WinError 10061] 由于计算机积极拒绝,无法连接。)””的错误。这个错误通常发生在尝试建立数据库连接的时候,意味着Python客户端无法与运行在localhost上的MySQL服务器建立连接。

二、可能出错的原因

  1. MySQL服务未启动:如果MySQL服务没有运行,客户端自然无法连接。
  2. 防火墙或安全软件阻止:有时候,防火墙或安全软件会阻止不受信任的程序进行网络通信。
  3. 错误的连接参数:如果连接参数(如主机名、端口号、用户名、密码等)设置错误,也会导致连接失败。
  4. MySQL配置问题:MySQL的配置文件(如my.cnf或my.ini)可能限制了外部连接,或者绑定了特定的IP地址。

三、错误代码示例

以下是一段可能导致上述错误的Python代码示例:

import pymysql  
  
try:  
    # 尝试连接到MySQL数据库  
    connection = pymysql.connect(  
        host='localhost',  
        user='root',  
        password='password',  
        database='mydatabase'  
    )  
except pymysql.err.OperationalError as e:  
    print(f"连接数据库时出错: {e}")


如果MySQL服务未运行或连接参数错误,执行上述代码将会触发OperationalError。

四、正确代码示例

首先,确保MySQL服务已经启动并且监听在正确的端口上。然后,检查并确保连接参数(主机名、端口、用户名、密码等)是正确的。以下是一个修正后的代码示例:

import pymysql  
  
try:  
    # 尝试连接到MySQL数据库,确保所有参数正确,并且MySQL服务已启动  
    connection = pymysql.connect(  
        host='127.0.0.1',  # 或者使用localhost,确保与MySQL配置一致  
        port=3306,         # 确保端口号正确,默认为3306  
        user='root',       # 使用正确的用户名  
        password='correct_password',  # 使用正确的密码  
        database='mydatabase'         # 使用存在的数据库名  
    )  
    print("数据库连接成功!")  
except pymysql.err.OperationalError as e:  
    print(f"连接数据库时出错: {e}")  
finally:  
    if connection:  
        connection.close()  # 确保最后关闭连接

五、注意事项

  1. 服务状态检查:在尝试连接之前,请确认MySQL服务已经启动并且正在运行。
  2. 参数校验:仔细检查连接参数,包括主机名、端口、用户名和密码等,确保它们与MySQL服务器的配置相匹配。
  3. 防火墙设置:确保没有防火墙或安全软件阻止Python程序与MySQL服务器之间的通信。
  4. 错误处理:在代码中添加适当的错误处理逻辑,以便在连接失败时能够优雅地处理异常。

通过遵循上述步骤和注意事项,你应该能够解决“pymysql.err.OperationalError:(2003 "Can’t connect to MySQL server on ‘localhost’)"的错误,并成功连接到MySQL数据库。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
SQL 关系型数据库 MySQL
MySQL操作利器——mysql-connector-python库详解
MySQL操作利器——mysql-connector-python库详解
2976 0
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
589 69
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
1593 9
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
1464 15
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
318 1
|
关系型数据库 MySQL 数据管理
pymysql:Python操作MySQL数据库的又一利器
pymysql:Python操作MySQL数据库的又一利器
260 1
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
Python Windows
Python:执行py命令,提示: Can‘t find a default Python.
Python:执行py命令,提示: Can‘t find a default Python.
|
SQL 关系型数据库 MySQL
30天拿下Python之使用MySQL
30天拿下Python之使用MySQL
279 0

推荐镜像

更多