MySQL 5.6 升级后几乎所有登录都会失败

MySQL 5.6 升级后几乎所有登录都会失败

我已将 openSUSE 升级到最新的 13.1。在升级过程中,mysql 从 5.5 升级到了 5.6。在删除 /etc/my.cnf 后,我成功升级了服务器 (mysql_upgrade)

升级后,我的基于 PHP 的 Web 应用程序无法连接到服务器,并出现以下错误:拒绝用户 ''@'localhost' 访问(使用密码:是)

我的 PHP 文件中的相关条目(过去 2 年一直相同!)是:

(mysqli_real_connect($GLOBALS["___mysqli_ston"], "localhost",  "<USERNAME>",  "<password>", NULL, 3306, NULL,  196608))) ? $GLOBALS["___mysqli_ston"] : FALSE);

我发现的是:

  • PHP/mysql连接器登录服务器
  • PHP/mysqli 连接器无法连接到服务器
  • mysql -u USERNAME -p 连接服务器
  • mysql -u 用户名@localhost失败连接到服务器。
  • mysql 监听标准 3306 端口。

netstat 确认了这一点:

netstat -anpt | grep -i mysql
tcp        0      0 :::3306                 :::*                    LISTEN      8549/mysqld    

升级后权限没有变化! DBuser表中的相关条目mysql为:

SELECT `Host` , `User` , `max_user_connections` , `password_expired`
-> FROM `user`
-> WHERE `User`='<username>'

+-----------+--------------+----------------------+------------------+
| Host      | User         | max_user_connections | password_expired |
+-----------+--------------+----------------------+------------------+
| localhost | <username>   |                    0 | N                |
+-----------+--------------+----------------------+------------------+

显然,@localhost 是问题所在,但是为什么呢?

答案1

看起来您正尝试使用 username@localhost 作为用户名。这看起来不正确,默认情况下,mysql 客户端将尝试连接到 localhost,除非使用 -h 指定。

所以应该是 -u USER 而不是 -u USER@LOCALHOST

相关内容