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:
看看root用户的SELECT user, host FROM mysql.user WHERE user = 'root';host字段是不是localhost、127.0.0.1或者%(允许所有IP)。如果只有特定IP,那你的代码可能因为host不匹配连不上。
3. 检查mysql-connector-python版本
有时候旧版本的连接器会有奇怪的bug,试试更新到最新版:
pip install --upgrade mysql-connector-python
按照上面的步骤来,应该能很快找到问题所在!
备注:内容来源于stack exchange,提问作者VictorM03
相关产品推荐
相关产品推荐

