解决方案 »

  1.   

    show  grants  for  'test'@'localhost'
      

  2.   

    select user()看看是确定是哪个用户
      

  3.   

    也可能之前赋予过更新权限  show grants看下
      

  4.   

    ==================================
    确定登录的是test,权限应该只有select,截图如下:太奇怪了
      

  5.   

    1.查看一下是不是使用了skip_grant_tables选项
    2.查看一下是不是有别的叫test的MySQL用户
      

  6.   

    ========================================
    没有使用skip_grant_tables
    环境上只有两个用户,root与新建的test,如下:
      

  7.   

    show grants; 直接试一下,
      

  8.   

    ================
    试了一下,显示跟上面一样,如下图:
    我试了另外创建一个用户test1,只赋予了select权限,结果在命令行中尝试,还是能update表数据。
      

  9.   

    那只能先revoke一下确保其他权限取消再grant试试。
    例如这样:
    REVOKE all on *.* from test ;
    FLUSH PRIVILEGES;
    GRANT  SELECT ON *.* TO 'test'@'localhost' identified by "xxxx";
    FLUSH PRIVILEGES;