必要なのは、buffered
trueに設定する必要があります!
cursor = cnx.cursor(buffered=True)
その理由は、バッファカーソルがないと、結果が「遅延」ロードされるためです。つまり、「fetchone」は、クエリの完全な結果セットから実際には1行しかフェッチしません。同じカーソルを再度使用すると、フェッチされるのを待っている結果がn-1個(nは結果セットの量)残っているというメッセージが表示されます。ただし、バッファカーソルを使用すると、コネクタはバックグラウンドですべての行をフェッチし、コネクタから1行を取得するだけなので、mysqldbは文句を言いません。