通过带有 Python3 的 Jupyter Notebook 访问 MySQL 数据库
Posted
技术标签:
【中文标题】通过带有 Python3 的 Jupyter Notebook 访问 MySQL 数据库【英文标题】:Access to a MySQL database via Jupyter Notebook w/ Python3 【发布时间】:2018-08-27 19:35:06 【问题描述】:我需要通过 Jupyter Notebook 访问 mysql 数据库,我在其上运行 Python 3.6(Anaconda 安装)。这是一个线性工作流程,从数据库中提取数据并在 Python/Pandas 中进行操作。不需要 ORM,一个简单的连接器就可以了。但是,广泛使用的referenced MySQLdb 包不适用于 Python 3.x。
有什么选择?
【问题讨论】:
请查看answer。仅将pip3
包管理器更改为 conda
。如果有帮助,请告诉我。
【参考方案1】:
在 Ubuntu 上推荐的 Jupyter 安装方式是 Anaconda,因此合适的包管理器是 conda。 Notebook 无法通过 pip/pip3 或 apt 进行安装。 conda 使获得至少两个好的连接器变得简单:
-
pymysql 运行良好且易于安装:
sudo conda install pymysql
-
“官方”连接器:
sudo conda install mysql-connector-python
我首先尝试了 pymysql,它很好,但由于大量的documentation 的可用性,然后切换到第二个选项。
如果您的目标是将数据导入 Pandas 数据框,那么使用内置的 pd.sql_read_table
或 pd.sql_read_query
很方便,因为它可以标记列等。它仍然需要安装连接器,如上所述.
以 MySQL-connector-python 为例,这里需要输入数据库 DETAILS:
import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+mysqlconnector://USER:PASSWORD@HOST/DB_NAME')
example_df = pd.read_sql_table("YOUR_TABLE_NAME", engine)
【讨论】:
以上是关于通过带有 Python3 的 Jupyter Notebook 访问 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章
Jupyter notebook Import tensorflow_hub error: No module named tensorflow.python.training.tracking