为什么我在 pika python 中收到此 MySQL 错误,找到未读结果

问题描述

在执行粗体 sql 命令时,获得未读结果发现错误。 python 代码位于 docker 容器中,MysqL db 也是如此。截断代码以突出问题所在。

import MysqL.connector
from datetime import datetime
import requests
import json
import math
import os
import logging

# Use logging.info() to output info to the console
logging.basicConfig(level=logging.INFO)

# Connecting to the MysqL Docker image
cnx = MysqL.connector.connect(user='test',password='test',host='db',database='VisualDB')
logging.info(cnx.is_connected())
# Use mycursor for pointing to tables and making queries<br>
mycursor = cnx.cursor()
userRows = mycursor.execute("SELECT * FROM user;")
cnx.commit()
logging.info(userRows)
sensorRows = mycursor.execute("SELECT * FROM SENSOR;")
cnx.commit()
logging.info(sensorRows)

这是我得到的错误MysqL.connector.errors.InternalError: Unread result found 做了一堆注释以确认这些行是问题,我有时也会在 cnx().commit
我的图像本身有问题吗? MysqL:最新
此外,该数据库是使用指向 sql 文件的“db”文件夹中的 Dockerfile 创建的

预先感谢您提供的任何建议!

解决方法

logging.info(userRows) 不会消耗 mycursor.execute("SELECT * FROM user;") 返回的结果,因此对 mycursor.execute 的下一次调用将导致上述错误。

尝试消费结果,即logging.info(list(userRows))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...