'访问拒绝用户'root'@'localhost'(使用密码:NO)'

我试图设置用户root的密码,但我得到下面的错误,任何想法?

+----------------------------------------------------------------------------------------------------------------------------------------+ | Grants for root@localhost | +----------------------------------------------------------------------------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*436576511F70A4E3B305E1AB8E209851945D8687' WITH GRANT OPTION | +----------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> exit Bye root@tirengarfio:/var/www/rs2# mysqladmin -u root password foo, mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' 
 # /etc/init.d/mysqld stop Stopping MySQL: [ OK ] # mysqld_safe --skip-grant-tables & [1] 13694 # Starting mysqld daemon with databases from /var/lib/mysql # mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> 
 $ mysqladmin -u root -p password Enter password: New password: Confirm new password: 

password是从字面上input的。 这是一个命令。 您不必用您的实际密码replace密码。

设置/更改密码:

 mysqladmin -u root -p password 

login到MySQL控制台:

 mysql -u root -p 

要退出控制台:

 .\q 

当试图运行这个命令我得到了同样的错误

 sudo mysqladmin create asteriskcdrdba 

我只需在代码中添加几行即可

 -u root -p 

并按下回车键。 然后我input我的密码,然后回车。 Linux喜欢我的命令,因为没有更多的显示

所以也许试试

 sudo <your command here> -u <username> -p 

之后点击进入并input您的密码

这基本上是以前的答案更详细的版本。

在您的terminal中,转至您的实用程序mysqladmin的位置

例如,如果您正在进行本地开发并使用像M / W / XAMP这样的应用程序,则可以转到目录:

/应用/甲基苯丙胺/库/箱

这是mysqladmin所在的地方。

如果你不使用像MAMP这样的应用程序,你也可以在/ usr / local / mysql中find你本地的mysql安装

然后如果你去:/ usr / local / mysql / bin /

您位于mysqladmin所在的目录中。

然后,要更改密码,您将执行以下操作:

  1. 在您的terminal提示下input下面的确切命令(又名复制和粘贴)并按回车 。 “密码”一词是命令的一部分,所以不要混淆,得出的结论是,您需要用您之前创build的密码或将来要使用的某个密码replace该密码。 你将有机会很快input一个新的密码,但这不是在这个第一个命令,你会这样做:

    ./mysqladmin -u root -p密码

  2. terminal会要求您input您的原始密码或初始密码,而不是新密码。 从上面提供的图片看来,您已经创build了一个图片,请在此input:

Enter password: oldpassword

  1. terminal会要求你input一个新的密码。 在此input并按回车键:

New password: newpassword

  1. 然后terminal会要求您确认新的密码。 在此input并按回车键:

Confirm new password: newpassword

重置或重新启动您的terminal。

在某些情况下,与M / W / XAMP一样,您需要在各种文件中更新这个新密码才能让您的应用程序再次正常运行。

这些都是很好的答案,但是如果面对OP的问题,还是不能很好地解决问题的深层原因。 也就是说,不知道在安装期间创build的ORIGINAL“开始”密码。

而所有这些带有“-u root …”的命令行都意味着知道并使用这个密码。

现在来自原始安装消息的这部分可能会帮助任何人面对上面的问题:

首次使用MySQL的初始密码保存在$ HOME / .mysql_secret中
即。 当你想使用“mysql -u root -p”首先你应该看到密码
在/root/.mysql_secret中

首先,到terminal上的support-files文件夹中,通过mysql.server start启动服务器,然后进入terminal的文件夹bin或者input/ usr / local / mysql / bin / mysqladmin -u root -p password

它会问你在安装Mysql时给你的旧临时密码,input你的新密码,然后input。

  • 使用以下path打开my.cnf

C:\ XAMPP的\ mysql的\ BIN

  • under #下面的选项将被传递给所有的MySQL客户端#password如果有的话,删除#注释符号password = "newpassword"

  • 保存存档

  • closures文件

  • 重新启动mysql