无法连接:拒绝用户‘[user]’@‘localhost’访问(使用密码:是)

无法连接:拒绝用户‘[user]’@‘localhost’访问(使用密码:是)

我正在尝试安装一个基于 PHP 的工具,该工具连接到托管在 Ubuntu 上的 MySQL 数据库。我可以从命令行登录 MySQL 数据库,但运行该应用程序会导致此错误:

Access denied for user '[user]'@'localhost' (using password: YES)

我做了什么:使用指导这次讨论,以下是我采取的一些故障排除步骤。

  • 尝试通过 Telnet 连接到 MySQL 会导致以下乱码:

    $ telnet 127.0.0.1 3306
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    A
    5.1.41-3ubuntu12.10XIs(ja&7FyO`r>zpDAY{Connection closed by foreign host.
    
  • 我的/etc/hosts.deny文件是空的。我已将以下几行添加到我的/etc/hosts.allow文件:

    mysqld:全部:允许 mysqld-max:全部:允许

  • 虽然bind-address在我的/etc/mysql/my.cnf文件设置为127.0.0.1,我将其注释掉但无济于事。

  • 禁用防火墙

  • 刷新权限

值得注意的是,我在每个步骤之后都使用以下命令重新启动了 MySQL:

mysqladmin -u [user] -p shutdown
mysqld_safe &

我错过了什么?

答案1

如果 mysql 管理员可以工作,那么客户端程序也可以工作吗?

如果客户端程序运行正常,则可能 mysql 客户端库已过期,需要更新。(我更熟悉 RedHat,但它可能是类似sudo apt-get update php-mysql.. 的东西,但我对那个包名不是 100% 确定)

还要确保你使用的名称与设置用户时的名称完全一致。如果你设置用户,则user@localhost可能无法使用[email protected]

希望有帮助

答案2

尝试这个

mysql >GRANT ALL ON [database name].* TO [user]@'127.0.0.1' IDENTIFIED BY '[PASSWORD]';

相关内容