家里有两个电脑A,B,mysql装载了B上,开发在A上,今天想在A上给数据库新增用户,没想到悲剧了:db_barbershop数据库是我用root新建的,我在A上用GRANT命令没一个成功的,最后还是跑到B上去设置了用户。即便是我在B上执行了对root的授权,也还是无法让root从其他电脑执行GRANT命令:
GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'accesscode'
GRANT root 远程GRANT 远程root

解决方案 »

  1.   

    GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'accesscode' with  GRANT OPTION;
      

  2.   

    你当前的登录账号没有权限。需要在数据库本机登录才能以 root@localhost 身份进行操作。 而楼主现在用的是 root@%
      

  3.   


    这个我不能理解,mysql数据库在主机B上(192.168.1.100),操作在客户端A上(192.168.1.101),我在A上登录是这样的:mysql -h 192.168.1.100 -u root -p accesscode这样登录明明就是以 root@'%' 身份远程登录的不对么?今天早上又尝试了一下在A上使用root登录,使用GRANT 命令,今天居然可以了,总共测试了两条:GRANT ALL ON db_barbershop.* to user_barbershop@'%' IDENTIFIED BY 'code_barbershop' WITH GRANT OPTION;GRANT ALL ON db_barbershop.* to user_barbershop@'%' IDENTIFIED BY 'code_barbershop';为什么昨天不行今天就行了,我没有搞清楚,是不是因为我昨天特意在主机B上执行过这个命令的缘故:GRANT ALL ON *.* TO root@'%' IDENTIFIED BY 'accesscode';实际上我最初安装mysql程序的时候已经勾选了允许root用户远程登录。这个事情成了一笔无头帐了~