0

在全新机器和本地 MySQL 5.7 数据库上安装 Mura。根据安装说明,我浏览到 Mura index.cfm 文件以完成安装。我输入数据库和 DSN 信息。几秒钟后,我收到一条错误消息。

执行数据库查询时出错。

数据来源:muracms

SQL: CREATE TABLE IF NOT EXISTS tuserremotesessions( userIDchar(35) 默认 NULL, authTokenchar(32) 默认 NULL, datatext, createddatetime 默认 NULL, lastAccesseddatetime 默认 NULL, PRIMARY KEY ( userID) )

代码:42000

类型:42000

PRIMARY KEY 的所有部分都不能为空;如果您需要在键中使用 NULL,请改用 UNIQUE

刷新浏览器页面再次导致此错误。我可以看到已经在数据库中创建了表。我尝试在互联网上搜索解决方案没有成功。

有谁知道我可以做些什么来克服这个错误?我之前已经在其他服务器上成功安装过 Mura,所以我真的很难过。

4

1 回答 1

0

对于遇到此错误的人,这是由于 MySql 5.7 中的 MySql 5.6 工作方式发生了变化。请参阅http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-3.html。具体来说

PRIMARY KEY 中的列必须不是 NULL,但如果显式声明为 NULL,则不会产生错误。现在发生错误。例如,诸如 CREATE TABLE t (i INT NULL PRIMARY KEY) 之类的语句被拒绝。

我在 {murahome}/requirements/mura/dbUpdates/5.2.0.cfm 中编辑了几个表的创建表语句,以删除default NULL两个表上的语句,然后一切正常。

于 2015-08-20T20:22:56.410 回答