欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 862|回复: 0

[经验分享] CDB for MYSQL 5.6 5.7 安装Discuz 报错解决方法

[复制链接]

6

主题

0

好友

600

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
2040
威望
600
发表于 2018-1-14 22:42:47 |显示全部楼层 |未分类
背景:
客户在安装Discuz论坛时,将数据库设置为cdb for mysql 5.6 或 5.7 版本的mysql
如下图,这里设置的是louis的5.7的数据库信息

QQ截图20180115071050.png

问题:
在数据导入时会有两个表报错
QQ截图20180114223738.png



原因:
腾讯云5.6 5.7 版本的mysql实例仅支持innodb引擎,报错表指定的引擎为myisam的,在导入数据库时会强制转换为innodb。
这两个报错是相同的,意思是自增字段必须是一个键,可以看下上图中的横线画出字段 ,这两个字段是复合主键的一部分,由于innodb引擎索引的最左原则没有匹配到,所以报错了。
解决方案:
1.修改建表语句将自增字段设置在复合索引的左侧。
将建表语句中的
PRIMARY KEY (uid,gpmid)改为 PRIMARY KEY (gpmid,uid)
PRIMARY KEY (tid,position)改为PRIMARY KEY (position,tid)

2.给这个自增字段增加一个二级索引,即为自增字段创建一个单独的key,就可以建表成功
后重新构建dz即可。
dz解压后会有三个目录,这个建表语句是存在upload/install/data/install.sql 这个文件里的
QQ截图20180114223918.png

在这个文件里找到这两个建表语句,修改下相关字段即可 (创建一个单独的key)
QQ截图20180114223924.png
QQ截图20180114223934.png

然后再导入就可以啦。
注意逗号
您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-10-18 23:06 , Processed in 1.176732 second(s), 32 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部