我无法登录 phpmyadmin。它显示以下错误。
错误 1045 (28000):用户“root”@“localhost”的访问被拒绝(使用密码:YES)
我尝试登录运行mysql -u root -p
,但它也显示相同的错误。
答案1
请按照以下步骤操作。
--skip-grant-tables
使用选项(安全设置)启动 MySQL 服务器实例或守护程序。$ mysqld --skip-grant-tables
在新终端上执行这些语句。
$ mysql -u root mysql $mysql> UPDATE user SET Password=PASSWORD('my_password') where USER='root'; $mysql> FLUSH PRIVILEGES;
如果您遇到上面的未知字段密码错误,请使用:
update user set authentication_string=password('my_password') where user='root';
最后,在没有选项的情况下重新启动实例/守护程序
--skip-grant-tables
。$ /etc/init.d/mysql restart
您现在应该可以使用新密码进行连接。
$ mysql -u root -p
输入密码:my_password
答案2
MySQL 身份验证是一件“许多精彩的事情”,或者 FUBAR,具体取决于您如何看待它。不同的版本和设置可以使用不同的身份验证方法。 Arzyfex 的建议可能并不总是有效。最好的建议是遵循此处的 MySQL 手册:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html。为了处理各种不同的身份验证格式,mysql
希望您使用,但是当服务器启动时使用选项set password for root
时,此命令将不起作用!--skip-grant-tables
因此,规定的公式是使用包含命令的特殊 init 文件来启动 mysql 服务器set password
。