使用LAMP时,用户’root’拒绝MySQL访问
我只是想在安装mysql时正常安装lamp server + phpmyadmin我得到这个错误:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
我不知道这是什么。
我不知道如何在ubuntu中运行php代码,因为这是我与linux的第一笔交易。
-
设置
mysql
的密码:sudo dpkg-reconfigure mysql-server-5.x
-
现在打开终端并输入:
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 。