StacklessPythonのConcurrenceフレームワークを試しています。これにはMySQLドライバーが含まれており、以前はMySQLdbで正常に実行されていたコードを実行すると、失敗します。
私がしていること:
ユーザー名/パスワード/ポート/データベースでdbapiを使用してMySQLデータベースに接続します。
実行中
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
これは次のメッセージで失敗します:
Table 'mydatabase.columns' doesn't exist
「mydatabase」は、手順1で指定したデータベースです。
「USEmydatabase」を発行した後にMySQLコンソールで同じクエリを実行すると、完全に機能します。
ネットワーク通信をチェックすると、次のようになります。
>>>myusername
>>>scrambled password
>>>mydatabase
>>>CMD 3 SET AUTOCOMMIT = 0
<<<0
>>>CMD 3 SELECT * FROM INFORMATION_SCHEMA.COLUMNS
<<<255
<<<Table 'mydatabase.columns' doesn't exist
これはドライバーの問題ですか(MySQLdbで機能するため)?または、この方法でINFORMATION_SCHEMAを照会できないようにする必要がありますか?
クエリを実行する前に特定の「USEINFORMATION_SCHEMA」を送信すると、期待どおりの結果が得られます。ただし、コード全体に「USE」クエリを振りかける必要はありません。