mysql - 如何将超集与mysql数据库连接?
问题描述
我试图用这个 SQLAlchemy URI 将超集与 mysql 数据库连接起来:mysql://localhost:3306/mysql/database/table1
但无法连接。
我收到了这个错误:
ERROR: {"error": "Connection failed!
The error message returned was:
No module named 'MySQLdb'", "stacktrace": "Traceback (most recent call last):
File \"/Users/akay/venv/lib/python3.7/site-packages/superset/views/core.py\", line 1703, in testconn
engine = database.get_sqla_engine(user_name=username)
File \"/Users/akay/venv/lib/python3.7/site-packages/superset/utils/core.py\", line 131, in __call__
value = self.func(*args, **kwargs)
File \"/Users/akay/venv/lib/python3.7/site-packages/superset/models/core.py\", line 923, in get_sqla_engine
return create_engine(url, **params)
File \"/Users/akay/venv/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py\", line 479, in create_engine
return strategy.create(*args, **kwargs)
File \"/Users/akay/venv/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py\", line 87, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File \"/Users/arkay/venv/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py\", line 118, in dbapi
return __import__(\"MySQLdb\")
ModuleNotFoundError: No module named 'MySQLdb'
"}
解决方案
MySQLdb 与 Python 3 不兼容,需要使用 pymysql。
安装 pymysql:
$ pip install pymysql
使用以下 URI 字符串连接到 mysql 数据源。
mysql+pymysql://user:pass@host/databasename
推荐阅读
- c# - 在 C# 代码中使用参数调用 matlab 方法
- java - 程序不会让用户输入帕斯卡三角形中的行数 - Java
- python - 优化两个列表之间的元素模糊匹配
- jquery - 一个函数中来自 2 个 API 的 GET 请求(JQuery)
- c++ - 如何求向量元素的乘积?
- android - 如何从我的活动更新我的片段列表?
- android - 如何在 Android 上增加 Kotlin 协程 Dispatchers.IO 的大小?
- python - 使用 Python 在 Postman 之外验证 API 请求
- c# - Unity3D Shooter - 在所有敌人被摧毁后如何切换到下一个级别?
- java - 无法在 Mac OS 中使用 Java TestNG Selenium Grid 以编程方式启动 docker