在使用 grant select on *.* to dev@'%'identified by 'dev';

创建用户时提示

ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)

解决办法

用show grant for root@'%';查看

mysql> show grants for root@'%';
+-------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                     |
+-------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '1dd41ece4462560c' WITH GRANT OPTION |
+-------------------------------------------------------------------------------------------------------+

查看有没有 WITH GRANT OPTION项如果没有用以下命令查看一下

select * from mysql.user\G

*************************** 1. row ***************************
                 Host: %
                 User: root
             Password: 1dd41ece4462560c
          Select_priv: Y
          Insert_priv: Y
          Update_priv: Y
          Delete_priv: Y
          Create_priv: Y
            Drop_priv: Y
          Reload_priv: Y
        Shutdown_priv: Y
         Process_priv: Y
            File_priv: Y
           Grant_priv: Y
      References_priv: Y
           Index_priv: Y
           Alter_priv: Y
         Show_db_priv: Y
           Super_priv: Y
Create_tmp_table_priv: Y
     Lock_tables_priv: Y
         Execute_priv: Y
      Repl_slave_priv: Y
     Repl_client_priv: Y
     Create_view_priv: Y
       Show_view_priv: Y
  Create_routine_priv: Y
   Alter_routine_priv: Y
     Create_user_priv: Y

如果grant_priv项为N :使用update mysql.user set grant_priv="Y" where user="root";

完成之后要重启数据库