不确定为什么mysql事件没有运行

时间:2015-02-21 16:29:08

标签: phpmyadmin mysql-event

我的网站有一个视频库,其中只显示2周或更短的视频。以前我运行的是一个简单的更新查询,无论何时任何用户访问此页面都会运行,如下所示:

$unixtime = time();

$query = mysqli_query($cxn, "UPDATE vids SET status = 'inactive' WHERE status = 'active' AND 1209600 < ($unixtime - uploadtime)");

我最近意识到事件和存储过程,并认为这可以通过在特定时间每24小时将此查询作为事件运行一次来​​保存许多查询(并从当前查询的页面中删除上面的查询找到)。我正在使用phpMyAdmin v.4.1.8(共享主机)和MySQL 5.1.73(自MySQL 5.1.6以来似乎已经存在事件支持)并且无法使其工作!这是我的查询(因为查询没有返回任何内容,我认为这是一个“事件”,虽然我知道“过程”也不需要返回任何内容):

CREATE DEFINER=`mysite`@`localhost` 
EVENT `videodeactivate` 
ON SCHEDULE EVERY 1 DAY 
STARTS '2015-02-21 10:45:00' 
ON COMPLETION PRESERVE ENABLE 
DO 
UPDATE myschema.vids SET status = 'inactive' 
WHERE status = 'active' 
AND 1209600 < (UNIX_TIMESTAMP() - uploadtime);

(注:1209600秒= 2周)

更新没有发生,虽然事件已经安排好了(我把它看作是这个数据库“Tables”正上方的一个小红色时钟,当我点击时钟时,程序被标记为ENABLED)。我编辑了事件以删除“myschema”(所以UPDATE vids SET ....)甚至删除了AND子句。没有错误被抛出,但事件似乎没有发生。

为什么这个事件肯定会在phpMyAdmin中“安排”,据我所知,没有运行?如果所有其他方法都失败了,我可以手动运行查询以停用这些超过2周的视频,但我希望看到此活动有效。

1 个答案:

答案 0 :(得分:0)

我刚从我的网络托管服务(JustHost)收到了一封电子邮件。显然,root访问权限是必要的,以便能够安排一个事件并让它被执行...托管自己网站的另一个原因:)