我试图使用此SQLAlchemy URI:-mysql:// localhost:3306 / mysql / database / table1将超集与mysql数据库连接,但无法连接。
我遇到此错误:
错误:{“错误”:“连接失败!\ n \ n返回的错误消息是:\ n没有名为'MySQLdb'的模块”,“堆栈跟踪”:“跟踪(最近一次调用):\ n文件\“ /用户/ akay / venv / lib / python3.7 / site-packages / superset / views / core.py \“,行1703,在testconn \ n engine = database.get_sqla_engine(user_name = username)\ n File \” / Users / akay /venv/lib/python3.7/site-packages/superset/utils/core.py \“,第131行,在调用 \ n值= self.func(* args,** kwargs) \ n在get_sqla_engine中的第923行\\ Users / akas / venv / lib / python3.7 / site-packages / superset / models / core.py \“ \ n返回create_engine(url,** params)\ n文件\“ / Users / akay / venv / lib / python3.7 / site-packages / sqlalchemy / engine / init .py \”,在create_engine \ n返回策略中的第479行。create(* args,** kwargs)\ n文件\“ / Users / akay / venv / lib / python3.7 / site-packages / sqlalchemy / engine / strategies.py \”,第87行,位于create \ n dbapi = dialect_cls.dbapi (** dbapi_args)\ n文件\“ / Users / arkay / venv / lib / python3.7 / site-pack ages / sqlalchemy / dialects / mysql / mysqldb.py \“,第118行,在dbapi \ n中返回 import (\” MySQLdb \“)\ nModuleNotFoundError:没有名为“ MySQLdb”的模块\ n”}
答案 0 :(得分:2)
MySQLdb与Python 3不兼容,您需要使用pymysql。
-安装pymysql
$ pip安装pymysql
使用下面的URI字符串连接到mysql数据源。
mysql + pymysql:// user:pass @ host /数据库名称
答案 1 :(得分:0)
使用 hostname=localhost 配置您的数据库用户
答案 2 :(得分:0)
您需要安装 mysql-connector-python
模块:
$ pip install mysql-connector-python
答案 3 :(得分:0)
有类似的问题。我相信这会为你们中的一些人节省时间:
使用 127.0.0.1
而不是 localhost
。
这是 MySQL 字符串的完美模板:
SQLALCHEMY_DATABASE_URI = 'mysql://username:password@127.0.0.1:3306/schema-name'
安装 MySQL:
pip3 install mysqlclient
升级 SQLAlchemy:
pip install sqlalchemy==1.3.24
加载数据库:
superset db upgrade
创建管理员用户:
superset fab create-admin