向用户授予权限在mysql中不起作用

时间:2012-12-12 14:16:59

标签: php mysql

我在phpmyadmin中执行了这个。

我执行了那些:

CREATE USER root IDENTIFIED BY PASSWORD '';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

尝试连接时我得到了这个:

连接失败:SQLSTATE [HY000] [1045]用户'root'@'localhost'拒绝访问(使用密码:NO)

       $dsn = 'mysql:dbname=one';
        $user = 'root';
        $password = '';
        $pdo="Not set";
      try{
            $pdo=new PDO($dsn,$user,$password);
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
          }catch(Exception $ex){
              echo "Connect failed: ".$ex->getMessage();
          }

请注意上面的连接用于工作..现在它没有(因为我切换到xampp)

4 个答案:

答案 0 :(得分:1)

您确定root用户没有密码吗?你安装phpmyadmin来检查这个吗?

如果问题不是特权,那么它可能是端口。 mysql的默认端口是3306,所以如果你的mysql端口现在是82,你必须在连接中添加端口。

答案 1 :(得分:0)

请检查create user specification,您似乎应该使用帐户名称的其他语法

  • 帐户名的语法是'user_name'@'host_name'。

所以,像CREATE USER 'root'@'localhost' IDENTIFIED BY PASSWORD '';之类的东西。 在你的情况CREATE USER 'root'@'%';但我真的不建议对root用户使用'%'

答案 2 :(得分:0)

更改权限后是否刷新权限?

您应该执行FLUSH PRIVILEGES;以告知服务器重新加载授权表。

答案 3 :(得分:0)

主机%不适用于localhost,您需要单独为localhost授予大权限