卸载 PHPMyAdmin 后,账户用户仍然保留

卸载 PHPMyAdmin 后,账户用户仍然保留

这是我第一次安装 LAMP。

我通过终端在 Ubuntu 16.04 上完美地安装了 Apache、PHP 和 MySQL。我最后安装的是 PHPMyAdmin。安装后,我不小心输入了我的用户名phpmyadmin和密码。之后,当我尝试登录并创建数据库时,它显示No Privilege

我也尝试过默认的“root”,有密码和无密码,但仍然无法登录。然后我尝试重新安装它,而且我也尝试了dpkg-reconfigure,但是它给了我一些错误消息,其中有中止、重试等选项。

我还尝试删除所有 PHPMyAdmin 数据/文件,并清除所有浏览历史记录以及我的 cookie。我尝试的最后一件事是使用替代数据库软件 - Adminer。安装该软件后,它没有要求我设置管理员帐户。

当我尝试使用它时,我无法登录,因为我不知道用户是什么。我尝试使用“root”或不使用密码,但仍然无法登录。当我尝试在 PHPMyAdmin 中登录我的帐户时,我很惊讶它工作正常并登录成功。不幸的是,我仍然无法创建数据库,并且它有一个类似的对话框PHPMyAdmin : 'Access denied for user 'phpmyadmin'@'localhost'

答案1

卸载 phpadmin 不会从 mysql 数据库中删除帐户。您可以手动执行此操作,但必须具有 root 访问权限。

您可以通过以下步骤恢复根访问权限。

从终端停止mysql服务,然后在没有授权表的情况下加载它。在下面的步骤中,$符号后面的文字是您输入的命令。括号中的文字是解释和注释。

(停止数据库)

$ sudo systemctl stop mysql

(启动 Mysql 但不加载授权表)

$ sudo mysqld_safe --skip-grant-tables &

(现在以 root 身份登录 mysql,无需密码)

$ sudo mysql --user=root mysql

(使用以下命令设置 root 密码:)

mysql> update user set authentication_string=PASSWORD('new-password') where user='root';
mysql>flush privileges;
mysql> quit;

(以“$”为提示符来终止安全模式服务器。输入“%”并按 ENTER 键)

$ %

Cntrl+c

(现在重新启动数据库,一切就绪)

$ sudo systemctl start mysql

请查看此答案以了解详情:
mysql 安装时不要求输入 root 密码

答案2

我正在寻找在 Ubuntu 22.04 上重置 MySQL 根密码的解决方案,并发现了这个问题和解决方案。

我记得在 Ubuntu 18.04 上安装 LAMP 时遵循了 LD James 概述的步骤。但是,它不适用于从 Ubuntu 存储库在 Ubuntu 22.04 上与 php 一起安装的 MySQL 发行版。

运行代码时

$ sudo mysqld_safe --skip-grant-tables &

它会引发以下错误。

$ sudo mysqld_safe --skip-grant-tables & [2] 4495 $ 2022-07-22T11:13:52.549114Z mysqld_safe 记录到“/var/log/mysql/error.log”。2022-07-22T11:13:52.550637Z mysqld_safe UNIX 套接字文件的目录“/var/run/mysqld”不存在。

[2]- 退出 1 sudo mysqld_safe --skip-grant-tables $ sudo mysql --user=root mysql 错误 2002 (HY000): 无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2) $

这是因为文件路径 /var/run/mysqld 中的目录 mysqld 似乎不存在。

这就是我所做的(首先安装了 Canonical 的 Ubuntu 22.04 版 php )

确保mysql正在运行。

$ sudo systemctl start mysql

接下来,连接mysql

$ sudo mysql

你应该像

“欢迎使用 MySQL 监视器。命令以 ; 或 \g 结尾。您的 MySQL 连接 ID 为 8 服务器版本:8.0.29-0ubuntu0.22.04.2 (Ubuntu)...等等”

接下来在 mysql 提示符下运行:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

注意:将“password”替换为您要为 root 设置的密码。

该语句应返回“查询 OK,受影响 0 行(0.00 秒)”

退出mysql

mysql> exit

应该返回“Bye” 接下来以 root 身份登录并使用密码“YES”选项

$ mysql -u root -p

您现在可以使用设置的密码以 root 身份登录。

如果您愿意,您现在可以运行 mysql_secure_installation 来设置进一步的安全措施,例如授权插件。

$ sudo mysql_secure_installation;

请参阅这篇优秀的文章在 Digitial Ocean 上进一步阅读。

相关内容