我不知道我的MySQL根密码;我怎么才能知道呢?是否有存储此密码的文件?

我正在跟踪这个链接,但我在本地没有directadmin目录。


当前回答

适用于Windows 10下的MySQL 5.5

您无法找到密码,因为它在表中是散列的,所以重置它是唯一的选择。

Lokesh kumar Chippada提供的通过.txt文件导入新密码脚本的解决方案对我不起作用。我发现命令提示符在启动导入后冻结了。

我在my.ini文件中添加了skip-grant-tables,就像tonycoupland在这篇SO帖子上的答案一样。

然后我就可以从命令行登录到mysql了

$ > mysql

然后在mysql中

mysql> FLUSH PRIVILEGES;

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

请参见mysql开发页面的“B.3.3.2.3重置Root密码:通用说明”。我现在已经从my.ini文件中删除了skip-grant-tables,并且我可以使用我创建的新密码作为根用户登录。

其他回答

有一件事绊倒了我在一个新的MySQL安装,并想知道为什么我不能得到默认密码工作,为什么甚至重置方法不起作用。 在Ubuntu 18上,MySQL服务器的最新版本在默认情况下根本不使用root用户的密码认证。这意味着不管你设置它为什么,它都不会让你使用它。它期望您从特权套接字登录。

mysql -u root -p

即使您使用了正确的密码,这也不起作用。

相反,你需要使用:

sudo mysql

这将适用于任何密码。 然后输入

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';

然后登出,现在它将接受您的密码。

你找不到它。它存储在一个数据库中,您需要根密码才能访问该数据库,即使您以某种方式获得了访问权限,它也会使用单向散列进行散列。您可以重置:如何重置Root用户密码

在你的“主机名”中。在MySQL工作的数据文件夹中的err文件中,尝试寻找以以下开头的字符串:

“为roor@localhost生成临时密码”

你可以使用

less /mysql/data/dir/hostname.err 

然后使用斜杠命令,后面跟着要查找的字符串

/"A temporary password"

然后按n,进入下一个结果。

我用另一种方法解决了这个问题,这对一些人来说可能更简单。

我这样做是因为我尝试在安全模式下启动,但无法连接到错误: ERROR 2002 (HY000):无法通过socket '/var/run/mysqld/mysqld连接到本地MySQL服务器。袜子”(2)

我所做的就是以root用户正常连接:

$ sudo mysql -u root

然后我创建了一个新的超级用户:

mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit

然后以myuser身份登录

$ mysql -u myuser -p -h localhost

尝试更改密码没有给我任何错误,但对我没有任何帮助,所以我放弃并重新创建根用户

mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;

根用户现在正在使用新密码

多亏了@thusharaK,我可以在不知道旧密码的情况下重置根密码。

在ubuntu上,我做了以下操作:

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking

然后在新的终端运行mysql:

mysql -u root

并执行如下命令修改密码:

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

在MySQL 5.7中,MySQL中的password字段。用户表字段被删除,现在字段名是'authentication_string'。

退出mysql安全模式,启动mysql服务:

mysqladmin shutdown
sudo service mysql start