将mysql数据库连接到apache超集

bkkx9g8r  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(408)

我正在尝试将mysql数据库连接到apache超集,但报告了以下错误:

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1045, "Access denied for user 'supersetuser'@'localhost' (using password: YES)")

我正在使用mamp,mysql在端口8889上本地运行。我正在尝试连接数据库 apache_superset 使用用户的凭据 supersetuser . 这个 SQLAlchemy 我试图传入apache超集的uri如下所示:

mysql://supersetuser:superset@localhost:8889/apache_superset

我确信这些凭证是正确的,因为我刚刚创建了它们。此外,我还尝试将所需的权限分配给用户

GRANT ALL PRIVILEGES ON `apache_superset`.* TO 'supersetuser'@'localhost' WITH GRANT OPTION;

但是我仍然无法将db连接到apache超集。

l7wslrjt

l7wslrjt1#

我设法通过替换 localhost127.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地址或名称。

相关问题