MySQL Root用户

时间:2012-01-30 15:43:24

标签: mysql phpmyadmin cpanel

我试图创建一个非常简单的MySQL事件,并意识到该操作未运行。然后我意识到我使用的用户没有超级权限(或任何其他与事件相关的权限)。我尝试通过phpMyAdmin向该用户授予所有权限,但这不起作用(因为我以该用户登录而不是root用户)。事实上,我不确定我的帐户是否有root用户。 如何找出root用户是谁(用户名和密码)?

我正在使用具有cpanel的托管服务提供商,当我查看我的mysql用户列表时,我只看到我创建的那些。 如果我以其他用户身份登录,有没有办法通过phpMyAdmin查找?

此外,每当我在cpanel中创建用户时,我总是选中复选框以授予“所有权限”,但我刚刚发现超级权限和其他一些权限不在列表中。据我所知,我将无法创建任何mysql事件,因为我无法向我的任何用户授予超级权限。

增加:

将用户分配到数据库时,我可以选择的唯一权限是

  • ALTER
  • ALTER ROUTINE
  • 创建
  • 创建日常工作
  • CREATE TEMPORARY TABLES
  • 创建视图
  • DELETE
  • DROP
  • EXECUTE
  • INDEX
  • INSERT
  • LOCK TABLES
  • 参考
  • 选择
  • 显示视图
  • TRIGGER
  • 更新

从每个人在他们的答案中所说的看起来我正在使用共享数据库,事件计划要么关闭和/或我不被允许授予用户处理事件的权限。有点糟透..

但是现在我将使用cron jobs。

4 个答案:

答案 0 :(得分:3)

您需要与您的托管服务提供商联系,并要求为您的帐户提供与活动相关的权限。他们很可能将所有用户数据库存储在同一个MySQL服务器下,因此出于明显的安全原因,无法授予root访问权限。

答案 1 :(得分:2)

经验法则:您的应用程序永远不需要超级用户权限。

甚至不使用事件系统。

在这种情况下,您唯一需要SUPER的是启用或禁用调度程序(这是一个服务器范围的设置)。如果您在共享数据库主机上,则无论是否已启用调度程序,以及您是否已获得数据库的EVENT权限,都将由提供程序决定。

如果您不在共享主机上,请检查my.ini上的 event-scheduler 行并确保其已启用。然后,确保您已经 granted EVENT 到您的应用程序用户ID。如果您在数据库上使用GRANT ALL PRIVILEGES(而不是在单个表上),则应授予EVENT权限。

答案 2 :(得分:0)

select user()会告诉您查询正在执行的登录信息。

但是,您不应该为处理面向公众的代码的数据库操作的任何代码授予“超级用户”权限。为了获得适当的安全性,面向公众的数据库代码应该具有完成工作所需的最低权限。通常只会更新/插入/删除/选择。

授予诸如drop / alter / create / grant / etc之类的东西......只是在寻找麻烦。

答案 3 :(得分:0)

  

我试图创建一个非常简单的MySQL事件,并意识到该操作未运行。然后我意识到我使用的用户没有超级权限

在阅读本文时,您可能首先要对异常进行更好的检查和处理,因为这样会在您的系统中发布一些错误。这是一项复杂的任务,需要对错误进行大量处理,以确定是否正确,否则您可能会发现自己在这部分中搜索了几个小时内的错误。