页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

(此文档仅供参考)

问题现象

连接mysql8.0作为知识库,空库启动后报错:Multiple primary key defined

问题原因

smartbi部署在空库启动的时候,会先创建表执行create table, 然后去ALTER TABLE ADD CONSTRAINT PRIMARY KEY添加(联合)主键,例如:

...

而MYSQL8.0.30之后增加了一个新特性sql_generate_invisible_primary_key,会在创建表时自动为表生成一个不可见的主键。在开启了此设置项后,此时创建的表已经有一个隐式生成的主键,那么再次通过ALTER TABLE尝试显式地添加或修改主键时,MySQL 会报错,因为它不允许一个表有多个主键。就会报错Multiple primary key defined,因为它不允许一个表有多个主键。

解决方案

       1、检查MySQL的配置文件是否配置了sql_generate_invisible_primary_key=1,如有可注释/删除掉此行代码,重启MySQL。

修改路径:编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

...