在全新的机器和本地MySQL 5.7数据库上安装Mura。根据安装说明,我浏览到Mura index.cfm文件以完成安装。我输入数据库和DSN信息。几秒钟后,我收到一条错误消息。
执行数据库查询时出错。
数据源:muracms
SQL:CREATE TABLE 如果不是EXISTS
tuserremotesessions
(userID
char(35)默认为NULL,authToken
char(32)默认为NULL,data
文本,created
日期时间 默认为NULL,lastAccessed
datetime默认为NULL,PRIMARY KEY (userID
))代码:42000
输入:42000
PRIMARY KEY的所有部分必须为NOT NULL;如果键中需要NULL,请改用UNIQUE
刷新浏览器页面会再次导致此错误。我可以看到已经在数据库中创建了表。我试图通过互联网搜索解决方案一直没有成功。
有没有人知道我能做些什么来克服这个错误?我之前在其他服务器上成功安装了Mura,所以我真的很难过。
答案 0 :(得分:0)
对于遇到此错误的人来说,这是因为MySql 5.7的变化与MySql 5.6的工作方式有关。见http://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-3.html。具体地
PRIMARY KEY中的列必须为NOT NULL,但如果显式声明 因为NULL没有产生错误。现在发生错误。例如,a 诸如CREATE TABLE t(i INT NULL PRIMARY KEY)之类的语句被拒绝。
我编辑了{murahome} /requirements/mura/dbUpdates/5.2.0.cfm中几个表的create table语句,删除了两个表上的default NULL
语句,然后一切正常。