mysql:对用户拒绝grant命令

时间:2015-06-21 11:35:19

标签: php mysql phpmyadmin

我需要有关mysql grant命令的帮助。 我需要将表上的select命令授予来自不同主机的用户。

/** * Load fixtures for all bundles * * @param Kernel $kernel */ private static function loadFixtures(Kernel $kernel) { $loader = new DataFixturesLoader($kernel->getContainer()); $em = $kernel->getContainer()->get('doctrine')->getManager(); foreach ($kernel->getBundles() as $bundle) { $path = $bundle->getPath().'/DataFixtures/ORM'; if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException('Could not find any fixtures to load in'); } $purger = new ORMPurger($em); $executor = new ORMExecutor($em, $purger); $executor->execute($fixtures, true); } (xx.xx.xxx是其他服务器的ip地址,用户是该服务器的用户名)

以上陈述给我错误:

  

1174 - 向用户

拒绝授予命令

它在localhost phpmyadmin中工作正常。但是当我在cpanel phpmyadmin中执行它时会出错。

由于

3 个答案:

答案 0 :(得分:3)

要回答您的问题,您只是没有 GRANT OPTION 权限。

您可能在localhost中拥有授权权限,但您肯定不在您的cpanel(实时服务器)上

GRANT 语句授予MySQL用户帐户权限。要使用GRANT,你必须。

  • 拥有GRANT OPTION权限,
  • 并且您必须拥有您授予的特权。

另外:

  

GRANT OPTION权限允许用户授予其权限   其他用户。两个拥有不同权限的用户   GRANT OPTION权限可以组合权限。

与大多数主机一样,当他们创建您的帐户时,也会自动生成一个mysql帐户/用户以及它(通常)给出database privilege。因此,他们为您提供的权利/您帐户附带的权限就是您拥有的权限。因此,如果您是自己帐户的管理员并且没有授予选项权限,则无法使用该权限。

答案 1 :(得分:0)

嗯,你不需要AT password

以下是MySQL文档中的示例:

GRANT SELECT ON db2.invoice TO 'jeffrey'@'localhost';

密码应在CREATE USER声明中处理。

请这样试试。您自己的运行GRANT语句的用户是否有权提供权利?是管理员用户吗?

答案 2 :(得分:0)

  
    
      

试试这个       在[mysqld]部分下的my.cnf文件中添加skip-grant-tables,或以其他方式停止mysqld并使用--skip-grant-tables选项启动它。

    
  
Use mysql to connect to DB without password without -p

Then execute this:

UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;

Then execute: GRANT ALL ON *.* TO 'root'@'localhost';