我正在尝试在 ubuntu 16.04 上安装 LAMP。我已经安装了所有东西,但在尝试让 phpmyadmin 工作时意外将自己锁定在 LAMP 之外,无论Access denied for user 'root'@'localhost'
我尝试什么,我都会成功。
我认为最简单的解决方案是卸载我安装的所有软件包以使 LAMP 正常工作。我以前sudo apt-get purge
会卸载我安装的所有软件包。现在我再次安装所有软件包,但在尝试安装 mysql 时出现相同的错误。我尝试:sudo mysql_secure_installation
它要求我输入 root 密码。我尝试将其留空,输入我认为我为 root 设置的密码,但一切都只是返回访问被拒绝的消息。
尝试进入 mysql 总是mysql -u root -p
返回访问被拒绝消息,我尝试通过创建一个文件并CREATE USER 'root'@'localhost' IDENTIFIED BY '<password>';
运行来 解决问题sudo mysqld_safe --init-file=<path_to_file>
,但我仍然收到访问被拒绝消息。
我认为某个文件里有它需要的信息,也许是密码。我也尝试了很多其他解决方案,但似乎都没有用。
编辑:我进一步调查,并尝试使用标志启动 mysql 服务--skip-grant-tables
以停止检查用户权限。运行时mysql -u root
它仍然告诉我ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
。我认为问题与我的密码无关,而是其他原因。
答案1
我设法通过终止所有正在运行的 mysql 进程来修复它:ps aux | grep mysql
列出进程,然后使用 终止它们sudo kill -9 [PID]
。这使我能够使用标志启动 mysqld_safe 进程--skip-grant-tables
,这使我能够使用 进入 mysql mysql -u root
。接下来进一步重置 root 的密码:https://help.ubuntu.com/community/MysqlPasswordReset
此外,mysql_server 5.7(截至目前的最新版本)中的用户表中的密码列已更改为authentication_string。
完成此操作后,我已全部安装完毕,现在就可以访问 phpmyadmin 了!