我正在尝试使用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);")
答案 0 :(得分:4)
如果命令不同步;您现在不能在 您的客户端代码,您以错误的顺序调用了客户端函数。
例如,如果您使用的是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;
不能同时执行
谢谢