密码重置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
不是mysql
或mysql -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'的访问被拒绝(使用密码:是)的主要内容,如果未能解决你的问题,请参考以下文章