Jupyter Notebook连接XAMPP托管MySQL时内核崩溃重启问题求助
解决Jupyter Notebook连接XAMPP托管MySQL时内核崩溃的问题
问题重现
运行以下Python代码连接XAMPP的MySQL数据库时,Jupyter内核直接崩溃重启:
import mysql.connector conn = mysql.connector.connect( host="localhost", user="root", password="", database="mock_prod")
触发提示:
Kernel Restarting. The kernel for ExhaustiveSearch.ipynb appears to have died. It will restart automatically.
已完成的前置排查:
- 已启动XAMPP的Apache和MySQL服务
- MySQL中存在
mock_prod数据库 - 使用默认端口(MySQL 3306、Apache 80)
- 已安装
mysql.connector包
可行解决步骤
1. 修复包版本兼容性问题
内核崩溃常源于mysql.connector与Python版本不兼容,尤其是Python 3.10+和旧版驱动的组合:
- 卸载现有包:
pip uninstall mysql-connector-python - 安装适配Python 3.x的稳定版本:
pip install mysql-connector-python==8.0.30
2. 显式指定连接参数并拆分测试
避免localhost解析异常,用IP替代并拆分连接步骤,定位问题点:
import mysql.connector try: # 先测试基础连接,不指定数据库 conn = mysql.connector.connect( host="127.0.0.1", port=3306, user="root", password="" ) print("基础连接成功") conn.close() # 再测试带数据库的连接 conn = mysql.connector.connect( host="127.0.0.1", port=3306, user="root", password="", database="mock_prod" ) print("带数据库连接成功") conn.close() except Exception as e: print(f"连接错误: {str(e)}")
3. 重置XAMPP MySQL权限
XAMPP默认root用户权限配置异常可能引发底层连接错误:
- 打开XAMPP控制面板,点击MySQL的
Shell按钮进入命令行 - 执行权限刷新命令:
FLUSH PRIVILEGES;
- 确认root用户本地连接权限:
SELECT user, host FROM mysql.user WHERE user='root';
确保存在root@localhost或root@127.0.0.1的条目。
4. 切换连接库验证
如果mysql.connector始终引发崩溃,换用pymysql测试是否为驱动本身问题:
- 安装包:
pip install pymysql - 测试代码:
import pymysql conn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='', database='mock_prod' ) print("连接成功") conn.close()
5. 对齐Jupyter与包的Python环境
确保Jupyter内核使用的Python环境和安装mysql.connector的环境一致:
- 在Jupyter中运行以下代码查看环境路径:
import sys print(sys.executable)
- 在终端运行
which python(Linux/macOS)或where python(Windows),对比路径是否匹配。若不一致,切换Jupyter内核到正确的Python环境。
内容的提问来源于stack exchange,提问作者SHENG HAO ONG
相关产品推荐
相关产品推荐

