0

基本的にJSON rpcサーバーであるpushpoolと呼ばれるオープンソースソフトウェアをセットアップしようとしていますが、何らかの理由で、ワーカー認証を試みるときに「mysql pwdb query failed at fetch」を受け取り続けます。

ここに要約があります:

OS は Ubuntu であり、MySql を実行しています フロントエンド: 「SimpleCoin」と呼ばれるオープンソース ソフトウェア マイナーは正常に接続しますが、mysql がユーザー名を「?」として読み取ろうとするため、プッシュプールは接続時に「mysql pwdb query failed at fetch」を返します。

mysql.log は、pushpool が次のステートメントを渡そうとしていることを示しています。

SELECT password FROM pool_worker WHERE username = ?

このセクションの pushpool の server.json ファイルによって呼び出されているもの (ユーザー/パス情報は編集されています):

# 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 (?, ?, ?, ?, ?, ?)"
    },

ワーカー/パス情報がテーブル「pool_worker」に追加されました。

json クライアントは、変数の処理方法が気に入らないように思えます。

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

「?」以来 は、接続しているマイナーのユーザー名に適切に置き換えられておらず、それ以外の場合、既知のワーカー ユーザー名を使用して mysql コマンド ラインからテストすると、ステートメントは正常に機能します...

json が正しいステートメントを mysql に渡すように変数を修正する方法についてのアイデアはありますか?

前もって感謝します!

4

1 に答える 1

0

MySQL 呼び出しが変数を不適切に処理していません。これはバグではなく、紛らわしいエラー メッセージです。

考えられる原因: pool_worker テーブルが空である可能性があります (単一のレコードではありません)。

以前に機能していた場合は、ある時点でデータベース構造を再作成した可能性があります。通常、再作成には、以前のテーブル構造を削除し、新しいテーブル構造を最初から再作成することが含まれます。このプロセスでは、そのテーブル内のすべてのレコードも消去されます。新しく作成されたテーブル構造が古いものと同じであっても、レコードは失われます。

以前に機能しなかった場合は、ユーザー名とパスワードを pool_worker テーブルに挿入したことがない可能性があります。

修正は簡単です。ユーザー名とパスワードのレコードを少なくとも 1 つ、pool_worker テーブルに挿入します (null 以外の文字列)。

少なくとも 1 つのレコードのユーザー名とパスワードが挿入されると、"mysql pwdb query failed at fetch" というメッセージが再度表示されることはありません。

于 2013-12-17T21:49:10.310 に答える