移动 tikiwiki 安装时出现 mysql 错误

移动 tikiwiki 安装时出现 mysql 错误

当我将我的 tikiwiki 安装从一台服务器移动至另一台服务器时,我遇到了这个问题:

我将我的 tikiwiki(12.2) 安装从一台服务器(Apache 2.2.26、PHP 5.3.16、MySQL 5.5.25a、Mac Server App 1.5/10.7.5)移至了一台新服务器 Apache 2.4.18、PHP 5.5.36、MySQL 5.6.34、Mac Server App 5.2/10.11.6)。

在新的地方浏览器中出现此错误:

System error.
The following error message was returned:
Duplicate entry 'iup0iinu0mrbd22cu0bv9n5uoq0uteko' for key 'PRIMARY'
The query was:
INSERT INTO `tiki_sessions` (`sessionId`, `timestamp`, `user`, `tikihost`) VALUES (?, ?, ?, ?)
Values:

    iup0iinu0mrbd22cu0bv9n5uoq0utekoou8qqdpl8fd2ea521vrd2vt3s5tfhu807h0t6pefkh2gfr4ntcd7ftgbtpgge1av7gibdt3
    1530885844
    xxxx.xxx.my-domain.de

The built query was likely:
INSERT INTO `tiki_sessions` (`sessionId`, `timestamp`, `user`, `tikihost`) VALUES ('iup0iinu0mrbd22cu0bv9n5uoq0utekoou8qqdpl8fd2ea521vrd2vt3s5tfhu807h0t6pefkh2gfr4ntcd7ftgbtpgge1av7gibdt3', '1530885844', NULL, 'xxxx.xxx.my-domain.de')

我按照这里的建议重新安装了:https://doc.tiki.org/Move-Tiki-to-a-new-server 我也在我的工作电脑上本地执行了此操作,并且效果非常好。

经过一段时间的研究,我相信这可能是 php 配置的问题。数据库字段“sessioonId”的类型为 varchar(32)。并且 sql 插入命令想要在其中放入更长的字符串。

有谁能解决这个问题吗?提前感谢提示;-)

马库斯

答案1

你是对的,varchar(32)该 sessionId 的大小不够。

ALTER TABLE tiki_sessions MODIFY sessionId VARBINARY(128) NOT NULL PRIMARY KEY;

我在这里使用了 VARBINARY,因为 sessionId 只是一个随机字符串,而不是真正的字符集。假设他们已经修复了这里的大小,那么从 12.2 升级可能是一种替代方案。

相关内容