mysql进入后准备赋外部访问权限,下面是附给所有用户root权限
grant all on *.* to root@'%' identified by '123456';
执行完报错
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)以前还好使来着,以前附过这个权限,因为新加的database外部看不到,只能看到以前的,所以我要重新附权限,是不是因为已经有这个权限了,才报上面的错?

解决方案 »

  1.   

    找到原因了,分享下
    这是因为mysql没有赋予你grant权限
    mysql> use mysql
    mysql> select grant_priv from user;
    +------------+
    | grant_priv |
    +------------+
    | N          | 
    | N          | 
    | N          | 
    +------------+
    3 rows in set (0.00 sec) 
    mysql> select grant_priv from user;
    +------------+
    | grant_priv |
    +------------+
    | Y          | 
    | Y          | 
    | Y          | 
    +------------+
    3 rows in set (0.00 sec)
    mysql> update user set grant_priv = 'Y';  
    mysql> quit
    #service mysqld restart#重启mysql
    #mysql -u root -p
    Enter password: 
    mysql> grant all on *.* to root@'%' identified by 'root';
    Query OK, 0 rows affected (0.01 sec)
      

  2.   

    上面步骤反了

    mysql> update user set grant_priv = 'Y'; 然后
    mysql> select grant_priv from user;
    +------------+
    | grant_priv |
    +------------+
    | Y |  
    | Y |  
    | Y |  
    +------------+
    3 rows in set (0.00 sec)