我正在尝试将MySQL数据库连接到Apache Superset,但报告了以下错误:
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1045, "Access denied for user 'supersetuser'@'localhost' (using password: YES)")
我正在使用MAMP和端口8889本地运行的MySQL。我正在尝试使用用户apache_superset
的凭据连接数据库supersetuser
。
我试图在Apache Superset中传递的SQLAlchemy
URI如下所示:
mysql://supersetuser:superset@localhost:8889/apache_superset
我很确定凭据是正确的,因为我刚创建它们。 此外,我还尝试为用户分配所需的权限
GRANT ALL PRIVILEGES ON `apache_superset`.* TO 'supersetuser'@'localhost' WITH GRANT OPTION;
但我仍然无法将数据库连接到Apache Superset。
答案 0 :(得分:1)
我设法通过将localhost
替换为127.0.0.1
因此完整的SQLAlchemy URI变为:
mysql://supersetuser:superset@127.0.0.1:8889/apache_superset
在Unix上,MySQL程序专门处理主机名localhost 与其他人相比可能与您的期望不同的方式 基于网络的程序。用于连接到localhost,MySQL程序 尝试使用Unix套接字文件连接到本地服务器。 即使给出了--port或-P选项来指定端口,也会发生这种情况 数。确保客户端建立TCP / IP连接 本地服务器,使用--host或-h指定主机名值 127.0.0.1,或本地服务器的IP地址或名称。