解决Typecho启用Access插件的提示:数据表建立失败,插件启用失败,错误信息:Specified key was too long; max key length is 1000 bytes
warning:
这篇文章距离上次修改已过1465天,其中的内容可能已经有所变动。
在使用wordpress时一直使用统计插件来看看博客的访问量,虽然每天的访问者基本都是机器人,并且也没有几个机器人。
迁移到Typecho后也想找个类似的统计插件,就找到了Kokororin这个插件,GitHub下载地址
在启用时就报错了,类似标题这样的数据表建立失败,找了一圈发现也有人遇到这样的问题,但是没有具体的解决方法。看了一下插件的目录,有个SQL的文件夹,里面有两个文件,一个是建立MySql数据表的命令,一个是建立Sqlite数据表的命令。
我是用的是MySql数据库,所以就把里面的命令在数据库里执行一下,就在数据库里面创建了typecho_access_log这个表,然后去插件里面再执行Access这个插件就可以启用了。
下面是创建typecho_access_log表的命令,在你的Typecho数据库里面创建这个表试试吧。
CREATE TABLE `typecho_access_log` (
`id` int(10) unsigned NOT NULL auto_increment,
`ua` varchar(512) default '' ,
`browser_id` varchar(32) default '' ,
`browser_version` varchar(32) default '' ,
`os_id` varchar(32) default '' ,
`os_version` varchar(32) default '' ,
`url` varchar(255) default '' ,
`path` varchar(255) default '' ,
`query_string` varchar(255) default '' ,
`ip` int(32) unsigned default '0' ,
`entrypoint` varchar(255) default '' ,
`entrypoint_domain` varchar(100) default '' ,
`referer` varchar(255) default '' ,
`referer_domain` varchar(100) default '' ,
`time` int(32) unsigned default '0' ,
`content_id` int(10) unsigned default NULL,
`meta_id` int(10) unsigned default NULL,
`robot` tinyint(1) default '0' ,
`robot_id` varchar(32) default '' ,
`robot_version` varchar(32) default '' ,
PRIMARY KEY (`id`),
KEY `idx_time` (`time` ),
KEY `idx_path` (`path` ),
KEY `idx_ip_ua` (`ip`,`ua` ),
KEY `idx_robot` (`robot`, `time` ),
KEY `idx_os_id` (`os_id` ),
KEY `idx_robot_id` (`robot_id` ),
KEY `idx_browser_id` (`browser_id` ),
KEY `idx_content_id` (`content_id` ),
KEY `idx_meta_id` (`meta_id` ),
KEY `idx_entrypoint` (`entrypoint` ),
KEY `idx_entrypoint_domain` (`entrypoint_domain`),
KEY `idx_referer` (`referer` ),
KEY `idx_referer_domain` (`referer_domain` )
)