MySQL需要一个密码,但它是空的

mysql -uroot ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) mysql -uroot -p Enter password: <-- leave blank, hit enter without entering anything mysql> <-- i am logged in 

注意:这是一个新的mysql实例安装

所以如果密码是空的,为什么不login我没有-p标志?

稍作澄清。 尝试使用脚本更改密码时遇到此问题:

我们使用一个bash脚本来做到这一点。

  • mysqladmin -u root password abc将不起作用(访问被拒绝)
  • mysqladmin -u root -p password abc无法使用,因为它提示input密码,我们需要自动执行此操作。
  • mysqladmin -u root -p'' password abc也不能正常工作

这是空密码的默认行为。没有什么错。

要允许自己login到MySQL,而不必在提示符下键入密码,请将您的密码添加到主目录中名为.my.cnf的文件中。

 [client] user=root password= 

现在将.my.cnf文件的权限更改为400或600。

 chmod 400 .my.cnf 

要么

 chmod 600 .my.cnf 

现在

 mysql 

命令会自动login你。

这是发送密码,尽pipe没有得到一个; 这是从某个地方得到的

检查~/.my.cnf文件。

但是,尽可能为root用户设置一个密码 – 除非你可能正在匿名login( select current_user(); )?

因为MySQL被设置为使用密码authentication,并且如果你没有在命令调用时提供密码(留在“-p”),它会提示你input你的MySQL密码。

将密码视为回车而不是空白可能会更容易