gpt4 book ai didi

mysql - 在没有 super 权限的情况下在 MySQL 中执行事件(?)

转载 作者:行者123 更新时间:2023-11-29 03:24:22 25 4
gpt4 key购买 nike

我已经在我的 MySQL 中创建了事件。他们正在工作,但为了让他们执行,我需要

SET event_scheduler = ON;

为此,我需要获得 super 权限。我收到以下错误:

Access denied; you need (at least one of) the SUPER privilege(s) for this operation

我尝试授予 super 权限:GRANT SUPER ON *.* TO user@'localhost' IDENTIFIED BY 'password'; 并得到另一个错误:

ERROR 1045 (28000): Access denied for user

我已经联系了我的主机,他们说由于他们的主机是共享的,所以他们无法为我的帐户添加 super 权限。

任何人都可以帮我找到另一种方法,以便事件开始运行吗?帐户不属于我,因此我无法切换主机。

最佳答案

Cron 作业可能是共享主机上最好的。如果您有权访问 cPanel ,它会让你的生活更轻松。

首先,第一件事:创建您的脚本。这可以访问数据库、发送电子邮件,几乎可以做任何需要做的事情。请注意,$_GET$_POST$_REQUEST$_COOKIE 将在脚本,因为这不是网络请求。您将无法设置 cookie,或查看有关远程用户的信息(因为没有)。但是,您可以使用 $argv 通过命令行传递变量。参见 this post获取更多信息。

此示例脚本将向 to_be_mailed 表中的所有用户发送新闻稿:

<?php

include('db.cfg.php');
include('newsletter.php');

$body = get_newsletter();

$result = $db->query("SELECT * FROM to_be_mailed");

while ( $row = $result->fetch_row() )
{
mail($row['email'], 'Nightly news update!', $body);
}

//Probably want to update the database again and set them all to sent.

echo 'Done sending emails!';

调试脚本可能很困难,因为您通常无权访问输出。看看this answer并确保启用 error_logs 以确保您的脚本成功执行。

使用 cPanel's Cron Jobs 时它通过在执行结束时通过电子邮件将输出发送给您,让您的生活更轻松。这使您可以更轻松地追踪错误,并确保您的 cron 作业成功执行。

接下来添加您的 cron 作业:

  • 参见 cPanel's Cron Jobs有关如何为启用 cPanel 的主机添加 cron 作业的信息。
  • 非 cpanel 主机:See this post .要点是,您使用 crontab -e 添加任务(这将打开一个编辑器,您可以在以下行中添加):
    # crontab -e
00 * * * * /usr/local/bin/php /home/USERNAME/myscript.php
  • 如果您刚刚开始使用 cron 语法,this site绝对精彩。它将为您提供示例、语法方面的帮助,并帮助您确定要运行的计划。

关于mysql - 在没有 super 权限的情况下在 MySQL 中执行事件(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com