密码重置LINUX后用户'root'@'localhost'的访问被拒绝(使用密码:是)

Posted

技术标签:

【中文标题】密码重置LINUX后用户\'root\'@\'localhost\'的访问被拒绝(使用密码:是)【英文标题】:Access denied for user 'root'@'localhost' (using password: Yes) after password reset LINUX密码重置LINUX后用户'root'@'localhost'的访问被拒绝(使用密码:是) 【发布时间】:2013-11-01 05:49:17 【问题描述】:

我在我的 linux 服务器上安装了 mysql,我忘记了它的密码,所以我去使用我在网上找到的方法更改它。我所做的如下:

/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql --user root mysql
SELECT * FROM user; // I checked if I could access the user table or not
update user SET password = PASSWORD('new_pass') WHERE user = 'root';
flush privileges;
exit

更新查询确实更改了密码,因为它向我显示了受影响的行数和查询正常等。

然后我重启了mysql

/etc/init.d/mysql stop
/etc/init.d/mysql start

现在当我用新密码登录时

mysql -u root -p new_pass

它仍然给我错误 “ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: Yes)”

我有什么遗漏的吗?

【问题讨论】:

【参考方案1】:

可能当前用户不是root,试试 sudo mysql -uroot -p ,我刚才成功了。

【讨论】:

【参考方案2】:

就我而言:

    /etc/init.d/mysql 停止 mysqld_safe --skip-grant-tables &

(在新窗口中)

    mysql -u root mysql>使用mysql; mysql> 更新用户集 authentication_string=password('password') where user='root'; mysql>刷新权限; mysql> 退出 /etc/init.d/mysql重启

【讨论】:

【参考方案3】:

在 mac os 上,请按照以下步骤操作:

停止 MySQL

$ sudo /usr/local/mysql/support-files/mysql.server 停止 以安全模式启动它:

$ sudo mysqld_safe --skip-grant-tables (上面是整个命令)

这将是一个持续的命令,直到进程完成,因此打开另一个 shell/终端窗口,无需密码登录:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root'; 启动 MySQL

sudo /usr/local/mysql/support-files/mysql.server 启动 您的新密码是“密码”。

【讨论】:

【参考方案4】:

您可能需要清除您的根帐户的plugin 列。在我的全新安装中,所有 root 用户帐户都在 plugin 列中设置了 unix_socket。这导致 root sql 帐户仅被锁定到 root unix 帐户,因为只有系统 root 可以通过套接字登录。

如果您update user set plugin='' where User='root';flush privileges;,您现在应该可以从任何 localhost unix 帐户(使用密码)登录到 root 帐户。

更多详情请见this AskUbuntu question and answer。

【讨论】:

【参考方案5】:

我遇到了同样的问题,@progrAmmar开导我,“仔细查看了mysql数据库中的用户表”。

我的问题不是ssl_type,而是第一个字段:Host。我使用

更改了值

update user set Host='localhost' where User='root' and Host='%';

mysqld_safe --skip-grant-tables 模型中。

然后效果很好。

【讨论】:

【参考方案6】:

我遇到了同样的问题。你必须写mysql -u root -p

不是mysqlmysql -u root -p root_password

【讨论】:

这对我有用,尽管我提到了askubuntu.com/questions/428243/…【参考方案7】:

您必须重设密码! mac osx(测试和工作)和ubuntu的步骤

停止 MySQL

$ sudo /usr/local/mysql/support-files/mysql.server stop

在安全模式下启动它:

$ sudo mysqld_safe --skip-grant-tables

(上面一行是整个命令)

这将是一个持续的命令,直到进程完成,因此打开另一个 shell/终端窗口,无需密码登录:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

启动 MySQL

sudo /usr/local/mysql/support-files/mysql.server start

您的新密码是“密码”。

【讨论】:

只有两件事:要停止服务器,我必须转到系统偏好设置 -> MySQL;从 MySQL 5.7 开始,用户表中没有密码列 - authentication_string 是新列(***.com/a/31122246/782874)【参考方案8】:

我可以通过执行这个语句来解决这个问题

sudo dpkg-reconfigure mysql-server-5.5

这将更改 root 密码。

【讨论】:

【参考方案9】:

实际上我仔细查看了mysql数据库中的用户表,原来有人在我之前将root用户的ssl_type字段编辑为SSL。

我编辑了那个字段并重新启动了 mysql,它就像一个魅力。

谢谢。

【讨论】:

您必须在安全模式下启动 MySql。它不需要root密码。登录后,您将进入 mysql 数据库,然后您可以发出 select * from user 并自己查看字段。【参考方案10】:

你可以试试这个解决方案:-

要让mysql要求你输入密码,你还需要指定-p选项:(尝试在-p和密码之间加空格)

mysql -u root -p new_password

MySQLl access denied

在Second link 有人评论了同样的问题。

【讨论】:

以上是关于密码重置LINUX后用户'root'@'localhost'的访问被拒绝(使用密码:是)的主要内容,如果未能解决你的问题,请参考以下文章

linux系统root用户忘记密码的重置方法

Mariadb root用户及普通用户的密码 重置

centos7重置root密码

Linux中root 密码重置

Linux root用户密码重置,远程登陆,文件基本属性

Linux系统重置root用户密码