使用LAMP时,用户’root’拒绝MySQL访问

我只是想在安装mysql时正常安装lamp server + phpmyadmin我得到这个错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 

我不知道这是什么。
我不知道如何在ubuntu中运行php代码,因为这是我与linux的第一笔交易。

  1. 设置mysql的密码:

     sudo dpkg-reconfigure mysql-server-5.x 
  2. 现在打开终端并输入:

     mysql -uroot -p 

输入密码,然后按Enter键

这对我有用:

只需将“ sudo ”附加到该mysql命令的开头:

 sudo mysql -uroot -p 

请注意该命令开头的“sudo”

我认为重要的是要注意这篇较老的post,MySQL在过去5年里已经改变了一些东西。 Digital Ocean 在Ubuntu 18.04上的如何安装MySQL的教程中声明了以下内容:

在运行MySQL 5.7(及更高版本)的Ubuntu系统中,根MySQL用户默认设置为使用auth_socket插件进行身份validation,而不是使用密码。

因此,请运行以下命令以正确安全地安装:

 sudo apt update sudo apt install mysql-server sudo mysql_secure_installation 

我亲自回答了来自mysql_secure_installation每个提示,并创建了一个强密码(选项2 ,如果您设置了VALIDATE PASSWORD插件)。 但是,这里的特定选择是你要做的。 无论哪种方式,您都将在其中一个提示下设置密码。 虽然,正如您将看到的,您不一定需要密码。

完成mysql_secure_installation的提示后。 您只需输入以下内容即可登录:

 sudo mysql 

这是因为MySQL 5.7及更高版本的本机身份validation方法是auth_socket而不是mysql_native_password以提高安全性。 无需密码,因为您只能从安装的机器登录。

如果您需要使用密码从其他来源登录,或者想了解更多信息,我建议您完整阅读如何在Ubuntu 18.04上安装MySQL 。