MySQL指令与Python不同步

时间:2019-01-01 09:21:02

标签: python mysql sql

我正在尝试使用MySQL和python mysql连接器初始化数据库。 在运行下面的代码后,我收到此异常:

  

mysql.connector.errors.DatabaseError:2014(HY000):命令不同步;您现在不能运行此命令

我尝试了几件事,包括提交连接对象,尽管对我来说没有用。

   def initialization():
        cnx = mysql.connector.connect(user="root", password="xxxxxxxxx", host='127.0.0.1')
        cursor = cnx.cursor()
        cursor.execute("CREATE DATABASE IF NOT EXISTS izugitdb;")
        cursor.execute("USE izugitdb;")
        cursor.execute("CREATE TABLE IF NOT EXISTS employee_users (user_id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(40) NOT NULL, password VARCHAR(40) NOT NULL,isadmin TINYINT(1) DEFAULT 0 NOT NULL);")
        cursor.execute("CREATE TABLE IF NOT EXISTS clients (client_id INT AUTO_INCREMENT PRIMARY KEY,client_name VARCHAR(255) NOT NULL); ENGINE = InnoDB;")
        cursor.execute("CREATE TABLE IF NOT EXISTS clients_workers (id INT AUTO_INCREMENT PRIMARY KEY, worker_id INT ,worker_name VARCHAR(255) NOT NULL, client_id INT);")

2 个答案:

答案 0 :(得分:4)

Commands out of sync

  

如果命令不同步;您现在不能在   您的客户端代码,您以错误的顺序调用了客户端函数。

     

例如,如果您使用的是mysql_use_result()和   在调用mysql_free_result()之前,尝试执行一个新查询。   如果您尝试执行两个返回数据的查询,也会发生这种情况   而不在两者之间调用mysql_use_result()或mysql_store_result()。

也许是您所用的命令,您是否尝试过直接在MySQL中使用它们?并能够复制错误?

或者尝试在每个命令后关闭游标,然后在使用游标执行另一条语句之前再次将其打开:

cursor.close() 

cursor = cnx.cursor() 

PS。 @Nikos Steiakakis很好,我已经编辑了您的密码并为其加了阴影,并希望这不是一个真正的密码。

答案 1 :(得分:0)

我发现这行

cursor.execute("CREATE TABLE IF NOT EXISTS clients (client_id INT AUTO_INCREMENT PRIMARY KEY,client_name VARCHAR(255) NOT NULL); ENGINE = InnoDB;")

很麻烦,ENGINE = InnoDB;不能同时执行 谢谢