You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PyCharm中Python连接MySQL数据库失败,进程退出码为-1073741819(0xC0000005)求助

PyCharm中Python连接MySQL数据库失败,进程退出码为-1073741819(0xC0000005)求助

兄弟我之前踩过这个坑,0xC0000005本质是内存访问违规错误,大概率是MySQL驱动和Python版本不兼容、环境位数不匹配,或者依赖冲突搞的鬼。给你列几个亲测有效的排查和解决步骤:

1. 先搞定MySQL驱动的版本兼容性

这个是最常见的原因!不同Python版本对驱动版本有要求,别乱装最新版,选稳定匹配的:

  • 先卸载现有驱动,在PyCharm的终端里执行:
    • 如果你用的是mysql-connector-pythonpip uninstall mysql-connector-python
    • 如果你用的是pymysqlpip uninstall pymysql
  • 然后重新安装对应版本的稳定版:
    • Python3.10/3.11的话,装mysql-connector-python==8.0.33(这个版本兼容性拉满):pip install mysql-connector-python==8.0.33
    • 用pymysql的话装pymysql==1.0.3pip install pymysql==1.0.3
  • 划重点:不要同时装多个MySQL驱动,比如既装mysql-connector-python又装pymysql,百分百冲突!

2. 验证Python和MySQL的位数必须一致

32位Python连64位MySQL,或者反过来,必出内存错误:

  • 先查你的虚拟环境Python位数:在PyCharm终端输入python -c "import sys; print(sys.maxsize > 2**32)",返回True是64位,False是32位
  • 再看你的MySQL服务器位数:打开MySQL Workbench,连接后看服务器信息,或者看安装目录,64位的话路径里一般有x64字样
  • 要是位数不匹配,要么换对应位数的Python解释器,要么换对应位数的MySQL

3. 重建虚拟环境,排除环境损坏问题

有时候虚拟环境创建的时候出了小问题,依赖加载不全:

  1. 先关掉PyCharm,手动删掉C:\python\connect-to-mysql\.venv这个文件夹
  2. 重新打开PyCharm,在项目里创建新的虚拟环境,选对Python版本
  3. 重新安装所有需要的依赖,再跑测试脚本

4. 用极简测试脚本排除业务代码问题

先别跑你的复杂代码,写个最基础的连接脚本试试,看是环境问题还是代码问题:

import mysql.connector
from mysql.connector import Error

try:
    # 替换成你自己的数据库信息
    connection = mysql.connector.connect(
        host='localhost',
        database='your_db_name',
        user='your_username',
        password='your_password'
    )
    if connection.is_connected():
        db_info = connection.get_server_info()
        print(f"成功连接到MySQL服务器,版本:{db_info}")
        cursor = connection.cursor()
        cursor.execute("SELECT DATABASE();")
        current_db = cursor.fetchone()
        print(f"当前连接的数据库:{current_db[0]}")

except Error as e:
    print(f"连接MySQL出错:{e}")
finally:
    if 'connection' in locals() and connection.is_connected():
        cursor.close()
        connection.close()
        print("MySQL连接已关闭")

把里面的your_db_nameyour_usernameyour_password换成你自己的信息,运行这个脚本。如果还是报错,那肯定是环境的问题;如果能成功,再慢慢加你的业务代码排查哪里出问题。

5. 确认MySQL服务器本身是正常的

先看MySQL Workbench能不能正常连接到你的数据库,如果Workbench都连不上,那先把MySQL服务器搞定:

  • 按Win+R,输入services.msc,找到MySQL服务,右键点“重启”
  • 要是重启后还是连不上,检查MySQL的配置文件(my.ini)有没有问题,比如端口是不是3306,有没有被占用

6. 临时关闭安全软件,排除拦截

Windows Defender或者360这类安全软件有时候会瞎拦截,把Python程序访问MySQL的内存或者端口给禁了。临时关掉这些软件,再跑脚本试试,要是能成功,就把PyCharm的解释器路径和MySQL的安装路径加到安全软件的白名单里。

如果以上步骤都试过还是不行,你可以把你的pip freeze输出(虚拟环境的依赖列表)和你的实际连接代码贴出来,我再帮你揪问题!

火山引擎 最新活动