MySQL root 用户无法以本地登录,可以登录进去,但是是以%
即便我这样  mysql -hlocalhost -uroot -p  都不行我有一个触发器有异常,无法执行,提示无执行权限,相同的账户其他触发器执行都正常;所以我想将触发器删了重建,但是删除也提示无权限   'root'@'%' 我是在服务器本地登录的  为什么提示  root @ %   而不是  root @ localhost  哪些情况会造成触发器异常?已经给 root @ localhost  以及  root @ %  赋予了所有权限  但是还是不行创建触发器是哪个权限  在说明文档里没有找到

解决方案 »

  1.   

    select user();
    show grants for root@'%';
    看看
      

  2.   

    检查一下 mysql.user 表中还有没有 root@localhost 存在? 是不是被误删除了。
      

  3.   

    察看了err_log 没有发现有什么特别的 
      

  4.   

    general_log 之前没有开启  开启后 再次尝试 执行修改触发器的操作 日志中无异常
      

  5.   

     'root'@'localhost'  'root'@'127.0.0.1' 'root'@'::1'  
      

  6.   

    问题大概是找到了,很奇怪   并不是真的没有触发器的操作权限,仅仅是那一个触发器没有权限,后来发现是大小写问题,换成大写的 就成功的删除了  还不是很清楚问题出在那里  但是问题解决了因为命名规则要求使用大驼峰,所以需要区分大小写,所以数据库配置文件里有配置
    lower_case_tablename=0不知道是不是因为没有配置成2的缘故
      

  7.   

    本地登录也很奇怪,mysql -uroot -p'直接写密码'  会提示登录失败但是如果 mysql -uroot -p 回车  然后再输入密码就会成功;
    然后就是 localhost登录时  use databasename   不需要区分大小写; 但是远程登录  就需要区分大小写