首先要把mysql数据库中有关的用户从localhost上登陆的记录删掉,因为mysql数据库的用户管理是现从具体的信息用户匹配的,比如说:
有个用户为:uesr1
mysql的用户授权表中已经有了可以从localhost登陆数据库,
你再增加用户可以从任何计算机(%)登陆数据库后,
它总是先匹配有localhost的用户,可能这个用户有密码或者别的什么信息!
根本不会找后面的%的信息,所以会出现没有成功的!不知解释的是否清楚?

解决方案 »

  1.   

    假设用户是usera ,你试试写成  usera@"%"
      

  2.   

    首先谢谢楼上两位的解答。可是,我按照你们所说的作了更改(不知道是否领会了你们的解答,使用命令如下,删除用户:delete from user where host='localhost';增加新用户:grant all privileges on *.* to user@'%' identified by 'user' with grant option;),user表中信息如下:
    | Host | User  | Password         | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv |
    | %    | user  | 1a486e7929011a28 | Y           | Y           | Y           | Y           | Y           | Y         | Y           | Y             | Y            | Y         | Y          | Y               | Y          | Y          | 但当我使用mysql -u user -p登陆,输入密码:user,提示信息如下:ERROR 1045: Access denied for user: 'user@localhost' (Using password: YES)。请问这是为什么呢?不知是否密码设置问题?谢谢!
    另外,还请问一下是否user表中host值是指客户端要登陆数据库的计算机的名字,而登陆时使用的参数mysql -h hostname -u user -p 中的hostname值代表的是数据库所在的计算机的名字?
      

  3.   

    GRANT ALL ON db.* TO yhlong@% IDENTIFIED BY "123456"
    注:yhlog为用户名
        123456为密码
      

  4.   

    增加用户一定得使用“楼上所说的”,不要在mysql的user表中添加,那样不行了。另外mysql有带辅助工具也可以用的,你开mysql>bin目录可以看到。
      

  5.   

    Grant 之后,再 flush privileges 试试。
    有时候,这样就可以了,但有时你得重启 mysqld。
      

  6.   

    hotman_x(小人)说的没错,添加用户后一定要flush privileges ,不然新用户是无法登陆的
      

  7.   

    实在不行,可以使用一个数据库前端来完成.如phpmyadmin,就可以很方便的完成这项工作.
      

  8.   

    其实直接修改user表也可以的啊,我每次都是这样做的。mysql> insert into user values('%','test',password('test'),'Y','Y','Y','Y','Y','
    Y','Y','Y','Y','Y','Y','Y','Y','Y');
      

  9.   

    在添加用户的时候最好不要用PHPMYADMIN直接添加,用户密码会出错的,这里有一个最简单的方法:如果我添加一个叫issysop的用户,他对所有MYSQL数据库都具有权限,而且能从任何地方远程登陆,在进入MYSQL的SEHLL后
    mysql> grant all privileges on *.* to issysop@* identified by 密码';不用flush privileges ,你试试吧
      

  10.   

    mysql> grant all privileges on *.* to issysop@* identified by 密码';执行报语法错啊。
      

  11.   

    to issysop(执着) : 我并不是叫你直接去弄数据表呀.phpmyadmin提供了用户权限的管理系统.
      

  12.   

    我做了一个mysql在线用户注册的东东。
    可以在线开通。mysql用户。
    然后用户就拥有mysql用户了,登录后就可以建表,了。。
      

  13.   

    你使用grant就可以了,用不着去该users表的