PyCharm中Python连接MySQL数据库失败,进程退出码为-1073741819(0xC0000005)求助
PyCharm中Python连接MySQL数据库失败,进程退出码为-1073741819(0xC0000005)求助
兄弟我之前踩过这个坑,0xC0000005本质是内存访问违规错误,大概率是MySQL驱动和Python版本不兼容、环境位数不匹配,或者依赖冲突搞的鬼。给你列几个亲测有效的排查和解决步骤:
1. 先搞定MySQL驱动的版本兼容性
这个是最常见的原因!不同Python版本对驱动版本有要求,别乱装最新版,选稳定匹配的:
- 先卸载现有驱动,在PyCharm的终端里执行:
- 如果你用的是
mysql-connector-python:pip uninstall mysql-connector-python - 如果你用的是
pymysql:pip uninstall pymysql
- 如果你用的是
- 然后重新安装对应版本的稳定版:
- Python3.10/3.11的话,装
mysql-connector-python==8.0.33(这个版本兼容性拉满):pip install mysql-connector-python==8.0.33 - 用pymysql的话装
pymysql==1.0.3:pip install pymysql==1.0.3
- Python3.10/3.11的话,装
- 划重点:不要同时装多个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. 重建虚拟环境,排除环境损坏问题
有时候虚拟环境创建的时候出了小问题,依赖加载不全:
- 先关掉PyCharm,手动删掉
C:\python\connect-to-mysql\.venv这个文件夹 - 重新打开PyCharm,在项目里创建新的虚拟环境,选对Python版本
- 重新安装所有需要的依赖,再跑测试脚本
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_name、your_username、your_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输出(虚拟环境的依赖列表)和你的实际连接代码贴出来,我再帮你揪问题!




