MySQL命令与Python不同步

MySQL命令与Python不同步,python,mysql,sql,Python,Mysql,Sql,我正在尝试用MySQL和python MySQL连接器初始化我的数据库。 运行下面的代码后,我收到此异常: mysql.connector.errors.DatabaseError:2014(HY000):命令不同步;现在无法运行此命令 我尝试了几件事,包括提交连接对象,但都没有效果 def initialization(): cnx = mysql.connector.connect(user="root", password="xxxxxxxxx", host='127

我正在尝试用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);")

如果命令不同步;现在无法在中运行此命令 您的客户端代码,您正在以错误的顺序调用客户端函数

例如,如果您使用mysql\u use\u result()和 在调用mysql\u free\u result()之前,请尝试执行新查询。 如果您尝试执行两个返回数据的查询,也可能发生这种情况 不调用mysql\u,在两者之间使用\u result()或mysql\u store\u result()

也许,在您的例子中,您是否尝试过在MySQL中直接使用这些命令?并且能够复制错误

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

cursor.close() 

cursor = cnx.cursor() 
顺便说一句@Nikos Steiakakis,我已经对你的密码进行了编辑和着色,希望那不是一个真实的密码。

如果命令不同步;现在无法在中运行此命令 您的客户端代码,您正在以错误的顺序调用客户端函数

例如,如果您使用mysql\u use\u result()和 在调用mysql\u free\u result()之前,请尝试执行新查询。 如果您尝试执行两个返回数据的查询,也可能发生这种情况 不调用mysql\u,在两者之间使用\u result()或mysql\u store\u result()

也许,在您的例子中,您是否尝试过在MySQL中直接使用这些命令?并且能够复制错误

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

cursor.close() 

cursor = cnx.cursor() 

顺便说一句,@Nikos Steiakakis,我已经对你的密码进行了编辑和着色,希望那不是一个真实的密码。

我发现这一行

cursor.execute("CREATE TABLE IF NOT EXISTS clients (client_id INT AUTO_INCREMENT PRIMARY KEY,client_name VARCHAR(255) NOT NULL); ENGINE = InnoDB;")
正在制造所有的麻烦,
引擎=InnoDB不能同时执行

谢谢

我发现这行

cursor.execute("CREATE TABLE IF NOT EXISTS clients (client_id INT AUTO_INCREMENT PRIMARY KEY,client_name VARCHAR(255) NOT NULL); ENGINE = InnoDB;")
正在制造所有的麻烦,
引擎=InnoDB不能同时执行

谢谢

你应该考虑改变问题的文本,因为我敢肯定你可能在别处使用这个密码……-)另外,现在无论您在何处使用它,都可以更改它。我认为您在声明表的引擎之前不需要分号。@delex,如果下面的答案帮助您解决了问题,您可以单击旁边的勾号来接受它,谢谢!你应该考虑改变问题的文本,因为我敢肯定你可能会在别处使用这个密码……-)另外,现在无论您在何处使用它,都可以更改它。我认为您在声明表的引擎之前不需要分号。@delex,如果下面的答案帮助您解决了问题,您可以单击旁边的勾号来接受它,谢谢!是的,它可以,只需删除
引擎
关键字前的分号即可。这是CREATE语句的一部分。@影子伟大,你应该考虑通过接受答案来结束这个答案!cheers@user5173426我不是第一个OP@Shadow哎呀,我的错。最近咖啡因太多。是的,它可以,只需删除
引擎
关键字前的分号即可。这是CREATE语句的一部分。@影子伟大,你应该考虑通过接受答案来结束这个答案!cheers@user5173426我不是第一个OP@Shadow哎呀,我的错。最近咖啡因太多了。