首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对MySQL的JSON调用不正确地处理变量

问对MySQL的JSON调用不正确地处理变量
EN

Stack Overflow用户
提问于 2013-03-22 23:09:43
回答 1查看 360关注 0票数 0

我正在尝试设置一个名为pushpool的开源软件,它本质上是一个JSON rpc服务器,但由于某些原因,我在尝试worker身份验证时总是收到"mysql pwdb query failed at fetch“。

下面是简要介绍:

操作系统是运行MySql前端的Ubuntu :名为"SimpleCoin“的开源软件Miners连接正常,但pushpool在连接时返回"mysql pwdb query failed at fetch”,因为mysql试图将用户名读取为"?“

mysql.log显示pushpool正在尝试传递以下语句:

SELECT password FROM pool_worker WHERE username = ?

该文件由本节中的推池的server.json文件调用(用户/通行证信息已编辑):

代码语言:javascript
复制
# database settings
     "database" : {
               "engine" : "mysql",

               # 'host' defaults to localhost, if not specified
               # "host" : "localhost",

               # 'port' uses proper default port for the DB engine,
               # if not specified
               "port" : "3306",

               "name" : "simplecoin",
               "username" : "SuperCoolUsername",
               "password" : "SuperSecretPassword",
               "sharelog" : true,
               "stmt.pwdb":"SELECT password FROM pool_worker WHERE username = ?",

               "stmt.sharelog":"INSERT INTO shares (rem_host, username, our_result, upstream_result, reason, solution) VALUES (?, ?, ?, ?, ?, ?)"
    },

Worker/pass信息已添加到表"pool_worker“中。

在我看来,json客户端不喜欢在中处理变量的方式:

"stmt.pwdb":"SELECT password FROM pool_worker WHERE username = ?",

从"?“开始未正确替换为连接的矿工的用户名,否则该语句在从mysql命令行使用已知的工人用户名进行测试时工作正常...

关于如何修复变量,以便json将正确的语句传递给mysql…?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2013-12-18 05:49:10

MySQL调用未正确处理变量。这不是一个bug,而是一个令人困惑的错误消息。

可能的原因:您的pool_worker表可能是空的(没有一条记录)。

如果它以前工作过,那么您可能在某个时候重新创建了数据库结构。重新创建通常涉及删除先前的表结构,并从头开始重新创建新的表结构。该过程还会擦除该表中的所有记录。即使新创建的表结构与旧的表结构相同,记录也会丢失。

如果以前从未使用过,那么您可能从未将用户名和密码插入到pool_worker表中。

解决方法很简单:在pool_worker表中插入至少一条用户名和密码记录(非空字符串)。

一旦至少插入了一条记录用户名和密码,消息"mysql pwdb query failed at fetch“就不会再次出现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15573697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档