我试图创建一个非常简单的 MySQL 事件,但发现该操作并未运行。然后我意识到我使用的用户没有 super 权限(或任何其他与事件相关的权限)。我尝试通过 phpMyAdmin 向该用户授予所有权限,但这没有用(因为我是以该用户而不是 root 用户身份登录的)。事实上,我不确定我的帐户是否有 root 用户。 如何找出根用户(用户名和密码)?
我正在使用具有 cpanel 的托管服务提供商,当我查看我的 mysql 用户列表时,我只看到我创建的用户。 有什么方法可以通过 phpMyAdmin 查明我是否以其他用户身份登录?
此外,每当我在 cpanel 中创建用户时,我总是选中复选框以授予“所有权限”,但我刚刚发现 super 权限和其他一些权限不在列表中。据我所知,我将无法创建任何 mysql 事件,因为我无法将 super 权限授予我的任何用户。
添加:
将用户分配给数据库时,我唯一可以选择的权限是
- 改变
- 改变常规
- 创建
- 创建例程
- 创建临时表
- 创建 View
- 删除
- 放弃
- 执行
- 索引
- 插入
- 锁定表格
- 引用资料
- 选择
- 显示 View
- 触发
- 更新
从每个人在他们的回答中所说的来看,我似乎正在使用共享数据库,事件计划已关闭和/或我不允许授予用户处理事件的权限。有点烂..
但现在我将使用 cron 作业。
最佳答案
经验法则:您的应用程序永远不需要 super 用户权限。
甚至不使用事件系统。
在这种情况下,您唯一需要 SUPER 的是启用或禁用调度程序(这是一个服务器范围的设置)。如果您在共享数据库主机上,则由提供商决定是否启用调度程序,以及您是否已被授予对数据库的 EVENT 权限。
如果您不在共享主机上,请检查您的 my.ini 中的 event-scheduler 行并确保它已启用。然后,确保你有 granted EVENT 到您的应用程序用户 ID。如果您在数据库上(而不是在单个表上)使用了 GRANT ALL PRIVILEGES
,则应授予 EVENT 权限。
关于MySQL 根用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066504/