Python3.6(Anaconda)环境下Jupyter Notebook连接MySQL的替代方案有哪些?
靠谱的Python3.6+Anaconda环境连接MySQL的替代方案
刚好在类似环境里折腾过,给你几个实测有效的替代方案,完全适配Python3.x,而且能直接配合Pandas在Jupyter Notebook里用:
1. PyMySQL(最常用的MySQLdb替代)
这是目前最流行的纯Python实现的MySQL客户端,完美兼容Python3,很多项目都用它替代停更的MySQLdb。
安装方法(Anaconda环境下)
优先用conda安装:
conda install pymysql
如果conda源找不到,用pip也没问题:
pip install pymysql
Jupyter里的使用示例
直接连接并读取数据到Pandas DataFrame:
import pymysql import pandas as pd # 可选:伪装成MySQLdb,适配依赖MySQLdb的旧代码 pymysql.install_as_MySQLdb() # 创建数据库连接 conn = pymysql.connect( host='你的MySQL主机地址', user='数据库用户名', password='数据库密码', database='目标数据库名', charset='utf8mb4' # 支持特殊字符/emoji ) # 用Pandas执行SQL并读取数据 query = "SELECT * FROM 你的表名 LIMIT 20" df = pd.read_sql(query, conn) # 记得关闭连接 conn.close() # 查看结果 df.head()
2. MySQL Connector/Python(官方出品)
这是MySQL官方提供的纯Python连接器,不需要依赖任何C库,稳定性有保障,适合追求官方支持的场景。
安装方法
conda安装:
conda install mysql-connector-python
或者pip:
pip install mysql-connector-python
使用示例
import mysql.connector import pandas as pd # 创建连接 conn = mysql.connector.connect( host='你的MySQL主机地址', user='用户名', password='密码', database='目标数据库名' ) # 读取数据到DataFrame query = "SELECT * FROM 你的表名" df = pd.read_sql(query, conn) # 关闭连接 conn.close()
3. SQLAlchemy(配合Pandas更便捷)
虽然你说不需要ORM,但SQLAlchemy的核心连接功能特别适合Jupyter场景——可以简化连接管理,不用手动处理连接关闭,而且Pandas对它的支持非常友好。
安装方法
conda install sqlalchemy
使用示例
from sqlalchemy import create_engine import pandas as pd # 创建连接引擎(格式:mysql+pymysql://用户名:密码@主机地址/数据库名) engine = create_engine('mysql+pymysql://your_user:your_password@localhost/your_db') # 用上下文管理器自动管理连接,无需手动关闭 with engine.connect() as conn: df = pd.read_sql("SELECT * FROM 你的表名", conn) # 直接查看数据 df.head()
小提示
- 确保MySQL服务处于运行状态,并且Jupyter使用的是你安装了这些包的Anaconda环境(可以在Notebook里用
!conda list检查包是否安装成功) - 如果遇到字符乱码,连接时指定
charset='utf8mb4'能解决绝大多数问题
内容的提问来源于stack exchange,提问作者tim-oh
相关产品推荐
相关产品推荐

