mysql - 用户 'user' @'localhost' 的访问被拒绝(使用密码 : YES) in Apache Nifi

标签 mysql docker permissions apache-nifi singlestore

我正在尝试使用 Apache Nifi 加载推文并将其存储在 memsql 数据库中。加载和处理推文效果很好,但是当我谈到插入到 memsql 的步骤时,更准确地说,当流程到达 ConvertJSONToSql 处理器时,它会抛出错误。

CET ERROR

这是我对 JDBC 连接池的设置:

Connection details

Memsql 运行在 Docker 上,我像这样初始化了它的集群:

docker run -i --init `
    --name memsql-ciab `
    -e LICENSE_KEY=$env:LICENSE_KEY `
    -p 3308:3306 -p 8090:8080 `
    memsql/cluster-in-a-box

端口 3306 和 8080 已被占用。我还确保 myuser 拥有托管“localhost”和“127.0.0.1”的所有权限,如授权中所示。 grants

当我使用 Windows Powershell 或 localhost:8090 连接时,两种登录方式都适用于“myuser”,密码为“pass”。此外,两个登录名都具有数据库“twitterDB”的权限。我发现奇怪的是,在我的 Docker 集群中,我有数据库 memsql,其中有表 users,但我只能运行:

describe memsql.users;

其他一切都会引发错误“错误 1706 (HY000):MemSQL 不支持功能“表名称与同名元数据表冲突”。”。另外,在 Nifi 的 JDBC 连接池中,如果我将用户和密码留空,ConvertJSONToSql 会抛出不同的错误,表示“@”localhost”用户没有数据库“twitterDB”的权限。*。

我已经为这个问题苦苦挣扎了一段时间,我不知道还能尝试什么,所以任何帮助都会很棒。

最佳答案

让我们将身份验证失败和插入失败的问题分开。尝试更改 Apache Nifi 以使用用户 root(无密码)并查看插入是否成功。还可以尝试使用 MemSQL Studio(设置中的localhost:8090)或 powershell 中的 sql 命令插入数据。每次登录时尝试此操作:root(无密码)并以 myuser 身份登录。这些测试应该可以帮助我们了解更多信息。

您没有指定 Docker 设置,因此假设使用 Docker Desktop 或其他本地 Docker,请尝试将 CPU 增加到 4 个,将 RAM 增加到 4 或 8 GB。我发现开发人员的默认值通常小于盒中集群的默认值。

关于mysql - 用户 'user' @'localhost' 的访问被拒绝(使用密码 : YES) in Apache Nifi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59815566/

相关文章:

php - 如何构造具有多个权限级别的多个用户?

linux - 有关文件权限和用户权限的 vftpd 问题

php - 我的 CentOS linux 机器上的 PHP 是什么用户?根?

javascript - Node/Mysql 异步数据

php - 将数组转换为字符串 MySQL 查询

mysql - Mysql + Percona 上的查询非常慢

MySQL 将枚举值转换为整数值

python - 在 Python 子进程中的 docker 中运行交互式命令

docker - docker中的存储驱动程序和图形驱动程序有什么区别?

performance - 进程在 ubuntu 18.04 上的 docker 容器中运行缓慢