You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接MySQL时执行异常无输出,如何判断连接是否活跃?

Python连接MySQL时执行异常无输出,如何判断连接是否活跃?

兄弟,我之前也碰到过类似的坑!咱们一步步来排查问题,找到根源:

1. 先给代码加上异常捕获,看是不是悄悄抛出了错误

你的原代码没有异常处理,要是连接过程中出了问题(比如权限不对、端口不匹配),程序会直接崩溃,后面的print(con)根本没机会执行。赶紧把代码改成这样,就能看到具体报错了:

import mysql.connector
from mysql.connector import Error

print('Attempting connection to database...')

con = None  # 先初始化连接对象,避免finally里报错
try:
    con = mysql.connector.connect(
        host="localhost",
        user="root",
        password="root"
    )
    if con.is_connected():
        print("✅ 连接成功啦!")
        print(f"连接对象信息:{con}")
except Error as e:
    print(f"❌ 连接出错了:{e}")
finally:
    # 不管成功失败,最后都关闭连接(如果成功建立了的话)
    if con is not None and con.is_connected():
        con.close()
        print("🔌 连接已关闭")

2. 核对MySQL连接参数和权限配置

虽然你用Workbench能连,但得确认两个工具用的是完全一样的连接方式:

  • 试试把host改成127.0.0.1,再加上port=3306参数(默认端口是3306,但万一你改了呢?):
    con = mysql.connector.connect(
        host="127.0.0.1",
        port=3306,
        user="root",
        password="root"
    )
    
  • 检查root用户的权限:打开MySQL Workbench,执行这个SQL:
    SELECT user, host FROM mysql.user WHERE user = 'root';
    
    看看root用户的host字段是不是localhost、127.0.0.1或者%(允许所有IP)。如果只有特定IP,那你的代码可能因为host不匹配连不上。

3. 检查mysql-connector-python版本

有时候旧版本的连接器会有奇怪的bug,试试更新到最新版:

pip install --upgrade mysql-connector-python

按照上面的步骤来,应该能很快找到问题所在!

备注:内容来源于stack exchange,提问作者VictorM03

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:30:28