16

我的 phpmyadmin 有点问题,实际上我不小心删除了多个用户帐户。由于无法在没有错误的情况下连接:

# 1045 - Access denied for user 'root' @ 'localhost' (using password: NO)

我之前在网上搜索了一下,甚至是技术:

UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;

不起作用,或者我不明白它是如何工作的。

我在 FreeBSD 8.1 上,我的 PhpMyadmin 版本是 2.11。

预先感谢您的回答。

4

8 回答 8

20

我在这里总结了我的解决方案:http: //snippets.dzone.com/posts/show/13267

sudo stop mysql
sudo mysqld --skip-grant-tables --skip-networking

mysql
mysql> update mysql.user set password = password('your_new_password') where user = 'root';
mysql> flush privileges;
mysql> exit;
sudo mysqladmin shutdown
sudo start mysql
于 2011-06-19T10:57:33.807 回答
6

对于 mysql 5.7.16 或更高版本,我发现这个(来自 mysql.com)是可行的解决方案。以下是与以前的旧版本相比的一些不同点

1)我使用以下命令在安全模式下运行 mysql,这些参考实际上对我来说很好(mysql 5.7.16 ubuntu 16.04)。

mysqld_safe --skip-grant-tables --skip-networking

2) 以下更新 stmt 不适用于更高版本(即 5.7 及更高版本)

-- NOT Working for 5.7 and later
UPDATE mysql.user SET Password = PASSWORD ('') WHERE User = 'root';
FLUSH PRIVILEGES;

INSTEAD 在下面使用 5.7.6 及更高版本

UPDATE mysql.user
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

或用户下面的 5.7.5 或更早版本。

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
于 2016-10-29T21:40:09.643 回答
1

我正在使用 MySQL Server 8,这就是我解决这个问题的方法。

创建一个文件并相应地命名它。我将它命名为reset.txt。将以下内容放入文件中,但更改 MyNewPass。这将是您的新 SQL 密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

停止我的 SQL 服务器(转到服务并搜索 MYSQL 并右键单击它并停止)

现在在 My SQLserver 目录的 bin 文件夹中打开一个 cmd。在我的情况下

C:\Program Files\MySQL\MySQL 服务器 8.0\bin

执行以下命令。

mysqld.exe --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\reset.txt' 

注意:我的 reset.txt 文件在 C 盘。给出正确的路径。检查 my.ini 文件是否在目录中。就我而言,它在

C:\ProgramData\MySQL\MySQL 服务器 8.0\my.ini

最后,重新启动 SQL Server。检查您的新密码。

于 2020-02-10T11:54:27.970 回答
0

请按照以下链接中的说明重置您的 root 密码。您必须从 mysql 外部进行。

重置MySql密码

忘记您的 MySQL 密码对您来说真的很头疼。这里有一些简单的步骤,您可以按照这些简单的步骤在 Windows Stop MySql 下恢复 MySql 密码

在继续之前,您必须停止 MySql 服务。在 Windows 环境中,转到“任务管理器”并在“服务”选项卡下找到 MySQL 并停止它。编写Sql修改密码

您需要做的就是创建一个文本文件并将以下两行放入其中。UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; 同花顺特权;将其保存在 C:\ 驱动器下并命名为 'mysql-init.txt' 是时候自己重新启动 MySQL 了。

现在是时候重新启动您之前停止的 MySQl,但这次是从命令行。C:> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt 完成!

现在您可以使用新密码登录。完成删除您在上一阶段创建的文件后。

还有一个链接(http://kaziprogrammingblog.osinweb.com/article/showarticle/Resetting-MySql-Password)我已经解释了同样的事情。

希望这会有所帮助.. :)

于 2013-11-04T11:39:21.097 回答
0

mysql80: update user SET authentication_string='your password after encode to sha256' where User='root';

于 2022-02-28T11:01:44.153 回答
0

这是我所做的并且它起作用了:
安装(rpm 安装)后,执行vi /etc/my.cnf.
这将为您提供设置您的路径datadir。对我来说是datadir=/var/lib/mysql
在此处添加一行user=root,并删除datadir路径内的所有内容:rm -rf /var/lib/mysql/*
现在点击命令:mysqld --initialize. 在某个位置生成一个临时密码。为此:
grep "A temporary password" /var/log/*
你会得到一条线,上面写着:
/var/log/mysqld.log:2018-05-01T15:13:47.937449Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &uosjoGfi9:K。所以对我来说&uosjoGfi9:K是我的临时密码。
现在做一个mysql -u root -p. 粘贴您从上面获得的临时密码。
您将处于 mysql cli 模式。现在做:
mysql> use mysql;
您将被要求重置密码: ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
运行您的 ALTER 命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPswd';
您就完成了。

于 2018-05-01T14:41:37.243 回答
0

Windows 上 XAMPP 的答案:

  • 编辑 C:\xampp\mysql\bin\my.ini 并在 [mysqld] 下面插入 skip-grant-tables
  • 从控制面板界面重启 MySQL
  • 在 phpMyAdmin 窗口中,从顶部面板中选择 SQL 选项卡。这将打开 SQL 选项卡,我们可以在其中运行 SQL 查询。现在在文本区域中键入以下查询,然后单击 Go

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; 同花顺特权;

  • 删除 my.ini 文件中的 skip-grant-tables
  • 从控制面板界面重启 MySQL

完毕!

请注意,mysql root 用户密码不必与 phpmyadmin 的密码相同。

于 2017-05-09T19:11:33.517 回答
0

在我的情况下,它是一个令人沮丧的 Windows Server 安装(iis/php/mysql),所以这就是我所做的:

第 1 部分:删除旧的 MYSQL :

注意:如果您已经有数据,您应该备份它!

步骤 1 从控制面板卸载 MySQL。(你应该知道怎么做)

步骤 2 以管理员身份运行命令提示符并执行以下命令以停止和删除 MySQL 服务。

Net stop MySQL
Sc delete MySQL

步骤 3 删除这些文件夹:

C:\Program Files\MySQL
C:\Program Files (x86)\MySQL
C:\ProgramData\MySQL

如果它存在:

C:\Users\[User-Name]\AppData\Roaming\MySQL

第 2 部分:安装 MYSQL

从https://dev.mysql.com/downloads/installer/下载安装程序并安装 -MySQL Server 8.0.23

以管理员身份打开 cmd 并转到 c:\Program Files\MySQL\MySQL Server 8.0\bin\ 运行

mysqld --initialize --console
mysqld --install

现在启动服务(在运行面板中输入 services.msc)

现在回到控制台运行:

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

而已

于 2021-02-14T06:13:24.737 回答