问题描述
在执行粗体 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))
。