1

このリンクに基づいたejabberd(XMPPサーバー)に認証スクリプトがあります

スクリプトを少し変更して、変数を設定する代わりに、true または false を返すようにしました。

Ubuntu、MySQL、ejabberd、および Python を使用しています。

データベースに既に存在するすべてのレコードを認証できます。しかし、レコードを追加または削除すると (phpMyAdmin を使用してこれを行います)、スクリプトはデータベースが変更されたことを認識していないようです (phpMyAdmin でユーザーを削除しても、ユーザーは認証されます)。スクリプトが新しいレコードを認識するのは、ejabberd サーバーを再起動または強制リロードするときだけです。私はすでにそれがmySQLキャッシングの問題ではないと言われています。ejabberd の外部認証キャッシュをオフにしたことを確認しました。

今思いつくのはそれだけです。思いついた情報があれば追記します。どんな助けでも大歓迎です。何が起こっているのかわかりません。

追加:MySQLログとそこにあるすべてのクエリをオンにして、クエリをスキップしないようにしました。

4

1 に答える 1

1

データベース エンジンを INNODB ではなく MYISAM に戻すことで、この問題を解決することができました。しかし、これが INNODB で修正できるかどうかを知りたいです。

編集: innodb で修正するには、autocommit を true に設定します

于 2010-09-19T19:44:39.723 に答える