我发现了一个奇怪的mysql行为,我正在努力解释
array[317]
它使用空字符串''作为错误消息中的用户名,即使我明确提供了 root12 。如果我提供正确的用户名,它连接没有问题,所以我怀疑它只是mysql报告错误的方式。
这是一个错误还是未记录的功能?
[vagrant@Subs ~]$ mysql -u root12 subdb
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'subdb'
修改
人们似乎对这个问题的措辞感到困惑。我使用root12作为用户名,而不是密码。我也说mysql没有 root12 的密码。此外,root12用户甚至不存在。所以这是一个明确的身份验证失败。我的问题是为什么说
[vagrant@Subs ~]$ mysql --version
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
它说
ERROR 1044 (42000): Access denied for user 'root12'@'localhost' to database 'subdb'
修改
在这里运行CentOS6.5,mysql 5.1.73。 testuser 用户最初不存在
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'subdb'
从这个输出中可以清楚地看到MySQL(似乎只有这个版本)泄漏了用户名是否存在的信息。如果它不存在,则错误消息将用户名重置为空字符串。如果是这样,mysql保持用户名不变
答案 0 :(得分:0)
按以下方式尝试 -
mysql -u root12 -p
它会询问您密码,您需要提供root12密码。
但如果root12是root用户的密码,则使用以下命令 -
mysql -u root -proot12