Python 将代码移动到Debian会导致;执行多条语句时使用multi=True“;错误语句

Python 将代码移动到Debian会导致;执行多条语句时使用multi=True“;错误语句,python,python-3.x,mysql-python,Python,Python 3.x,Mysql Python,我一直在运行python脚本,在一台装有Ubuntu20.04LTS的机器上调用MySQL。我最近刚刚将这些脚本转移到运行Debian 10的服务器上 两台服务器都安装了MySQL 8.0.21。Python 3.7.3在Debian服务器上,Python 3.8.2在Ubuntu上。在Debian服务器上执行python脚本时,会收到以下错误消息: 执行多条语句时使用multi=True 我没有对代码做任何更改,所以我不确定为什么我会在Debian服务器上收到这条消息,但在Ubuntu服务器上

我一直在运行python脚本,在一台装有Ubuntu20.04LTS的机器上调用MySQL。我最近刚刚将这些脚本转移到运行Debian 10的服务器上

两台服务器都安装了MySQL 8.0.21。Python 3.7.3在Debian服务器上,Python 3.8.2在Ubuntu上。在Debian服务器上执行python脚本时,会收到以下错误消息:

执行多条语句时使用multi=True

我没有对代码做任何更改,所以我不确定为什么我会在Debian服务器上收到这条消息,但在Ubuntu服务器上没有

以下是脚本中导致错误的部分:

cursor = dbconn.cursor(dictionary=True)

# get next scheduled event to be aired
sql = "CALL GetEvent();"
cursor.execute(sql)

result = cursor.fetchone()
cursor.close()

if result:  
    eventtime = str(result["eventtime"])

    # the max seconds we are going to wait is 60
    init_waitseconds = timediffinseconds(eventtime)
    if init_waitseconds > 61:
        waitseconds = 60
    else:
        waitseconds = init_waitseconds

    # wait for specified time
    print_stdout(f"{bcolors.CGREEN}[EVENT_MONITOR]{bcolors.ENDC} Waiting for next scheduled event at {eventtime}")
    time.sleep(waitseconds)
调用的存储过程如下所示:

CREATE DEFINER=`root`@`localhost` PROCEDURE `GetEvent`()
BEGIN
    
    DECLARE v_DayName CHAR(9);    
    SET v_DayName := DAYNAME(CURRENT_DATE);
    
    SELECT e.name, e.eventaction, e.data, e.extra, et.eventday, et.eventtime, et.recurring
        FROM event e
        INNER JOIN eventtime et ON et.eventID = e.ID
        WHERE et.eventdate = CURDATE() AND et.recurring = 'No' AND e.enabled = 1 AND et.eventtime > CURRENT_TIME() OR           
            et.eventday = 'v_DayName' AND et.recurring = 'Yes' AND e.enabled = 1 AND et.eventtime > CURRENT_TIME() OR
            et.eventday = 'Day' AND et.recurring = 'Yes' AND e.enabled = 1 AND et.eventtime > CURRENT_TIME() OR
            CASE WHEN IsWeekday('v_DayName') = True THEN et.eventday = 'Mon-Fri' END AND e.enabled = 1 AND et.eventtime > CURRENT_TIME() OR
            CASE WHEN IsWeekend('v_DayName') = True THEN et.eventday = 'Sat-Sun' END AND e.enabled = 1 AND et.eventtime > CURRENT_TIME()
        ORDER BY et.eventtime
        LIMIT 1;
END
此外,python脚本的这一部分也会导致相同的错误:

cursor = dbconn.cursor(dictionary=True)

# CheckQueueCount MySQL procedure retrieves how many tracks are currently in queuelist table
sql = "CALL CheckQueueCount"
cursor.execute(sql)

result = cursor.fetchone()
ret = result["QueueCount"]
cursor.close()
return ret
以及它调用的存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `CheckQueueCount`()
BEGIN

    SELECT COUNT(ID) AS QueueCount FROM queuelist;
    
END

好的,我相信我解决了这个问题。我卸载了使用以下命令安装的连接器:

sudo pip3 install mysql-connector
而是将其安装为:

sudo pip3 install mysql-connector-python

错误已经消失。

您使用哪个(Python)包连接到数据库?两台机器上的版本是否相同?我假设您指的是mysql连接器。如何检查它们以查看安装了哪些版本?
pip list | grep-I'mysql connector'
,注意使用正确版本的
pip