我在Linux下用root用户安装了一个MySQL 新建了一个mysql用户abc 密码abc 
在Linux 的root用户下 输入mysql -u abc -p 后输入abc 可以登陆进mysql 
但是在Linux的其他用户(除了MYSQL用户) 下  登陆mysql 报 
ERROR 1045 (28000): Access denied for user 'abc'@'localhost' (using password: YES) 
看上去像密码错误,但是密码是没问题的 。在Linux的root用户下登陆完全正常。 
我想应该是对MySQL的目录访问权限问题。但是我把/use/local/下的 mysql目录 添加上了其他用户的读写权限。但是问题还是没解。期待大侠指点迷津

解决方案 »

  1.   

    abc这个mysql用户是怎么建立的?建立的时候如何赋权?
    你的问题看起来非常怪异
    估计是root的环境问题,检查是不是有mysql相关的环境变量比如mysql_host
    还有my.cnf中client节里是不是有些特殊的东西?我只能肯定一点,mysql数据目录的权限跟这个事情完全无关,别在那里动脑筋了。
      

  2.   

    权限的问题是禁止远程连接,可以使用:
    use mysql ;
    查看用户设置
    mysql> select host,user,password from user;
    如果想支持客户端联接,需要更新user表mysql> update user set host = '%' where host='localhost' and user='root';
    将这个'%'设置好了以后,其它的客户端就可以连接了
      

  3.   

    mySQL中你需要给用户授权允许在哪台机器/IP连上来。以ROOT进行mysql命令然后
    grant all on *.* to  'abc'@'localhost' 
    或者
    grant all on *.* to  'abc'@'%' 
      

  4.   

    shell>mysql -uroot ...
    mysql>grant all on *.* to  'abc'@'%' 应该能解决问题
      

  5.   

    - - 还是没解,我觉得我的问题描述的还是够清楚的了- -但是
    在一台机器上用root用户安装了mysql....
    而切换到另外的用户 无法使用mysql.....
      

  6.   

    感谢2楼的,我查过了 应该不是配置问题,但是现在问题还是没解决。不知为何?
    但是从表面上看 真的是觉得是对mysql的文件访问权限的问题
      

  7.   

    试试1.把你的mysql服务停掉
    2.使用以下命令来启动数据库(安全模式)
      /use/local/mysql/bin/safe_mysqld --skip-grant-tables
    3.切换到其他用户,直接用mysql登陆数据库这样跳过mysql的权限验证来确定是否是目录访问权限的问题